if (typeof jwplayer == "undefined") {
    var jwplayer = function (a) {
        if (jwplayer.api) {
            return jwplayer.api.selectPlayer(a)
        }
    };
    var $jw = jwplayer;
    jwplayer.version = "5.7.1896 (Licensed version)";
    jwplayer.vid = document.createElement("video");
    jwplayer.audio = document.createElement("audio");
    jwplayer.source = document.createElement("source");
    (function (b) {
        b.utils = function () { };
        b.utils.typeOf = function (d) {
            var c = typeof d;
            if (c === "object") {
                if (d) {
                    if (d instanceof Array) {
                        c = "array"
                    }
                } else {
                    c = "null"
                }
            }
            return c
        };
        b.utils.extend = function () {
            var c = b.utils.extend["arguments"];
            if (c.length > 1) {
                for (var e = 1; e < c.length; e++) {
                    for (var d in c[e]) {
                        c[0][d] = c[e][d]
                    }
                }
                return c[0]
            }
            return null
        };
        b.utils.clone = function (f) {
            var c;
            var d = b.utils.clone["arguments"];
            if (d.length == 1) {
                switch (b.utils.typeOf(d[0])) {
                    case "object":
                        c = {};
                        for (var e in d[0]) {
                            c[e] = b.utils.clone(d[0][e])
                        }
                        break;
                    case "array":
                        c = [];
                        for (var e in d[0]) {
                            c[e] = b.utils.clone(d[0][e])
                        }
                        break;
                    default:
                        return d[0];
                        break
                }
            }
            return c
        };
        b.utils.extension = function (c) {
            if (!c) {
                return ""
            }
            c = c.substring(c.lastIndexOf("/") + 1, c.length);
            c = c.split("?")[0];
            if (c.lastIndexOf(".") > -1) {
                return c.substr(c.lastIndexOf(".") + 1, c.length).toLowerCase()
            }
            return
        };
        b.utils.html = function (c, d) {
            c.innerHTML = d
        };
        b.utils.wrap = function (c, d) {
            if (c.parentNode) {
                c.parentNode.replaceChild(d, c)
            }
            d.appendChild(c)
        };
        b.utils.ajax = function (g, f, c) {
            var e;
            if (window.XMLHttpRequest) {
                e = new XMLHttpRequest()
            } else {
                e = new ActiveXObject("Microsoft.XMLHTTP")
            }
            e.onreadystatechange = function () {
                if (e.readyState === 4) {
                    if (e.status === 200) {
                        if (f) {
                            f(e)
                        }
                    } else {
                        if (c) {
                            c(g)
                        }
                    }
                }
            };
            try {
                e.open("GET", g, true);
                e.send(null)
            } catch (d) {
                if (c) {
                    c(g)
                }
            }
            return e
        };
        b.utils.load = function (d, e, c) {
            d.onreadystatechange = function () {
                if (d.readyState === 4) {
                    if (d.status === 200) {
                        if (e) {
                            e()
                        }
                    } else {
                        if (c) {
                            c()
                        }
                    }
                }
            }
        };
        b.utils.find = function (d, c) {
            return d.getElementsByTagName(c)
        };
        b.utils.append = function (c, d) {
            c.appendChild(d)
        };
        b.utils.isIE = function () {
            return ((! +"\v1") || (typeof window.ActiveXObject != "undefined"))
        };
        b.utils.isLegacyAndroid = function () {
            var c = navigator.userAgent.toLowerCase();
            return (c.match(/android 2.[012]/i) !== null)
        };
        b.utils.isIOS = function (d) {
            if (typeof d == "undefined") {
                d = /iP(hone|ad|od)/i
            }
            var c = navigator.userAgent.toLowerCase();
            return (c.match(d) !== null)
        };
        b.utils.isIPad = function () {
            return b.utils.isIOS(/iPad/i)
        };
        b.utils.isIPod = function () {
            return b.utils.isIOS(/iP(hone|od)/i)
        };
        b.utils.getFirstPlaylistItemFromConfig = function (c) {
            var d = {};
            var e;
            if (c.playlist && c.playlist.length) {
                e = c.playlist[0]
            } else {
                e = c
            }
            d.file = e.file;
            d.levels = e.levels;
            d.streamer = e.streamer;
            d.playlistfile = e.playlistfile;
            d.provider = e.provider;
            if (!d.provider) {
                if (d.file && (d.file.toLowerCase().indexOf("youtube.com") > -1 || d.file.toLowerCase().indexOf("youtu.be") > -1)) {
                    d.provider = "youtube"
                }
                if (d.streamer && d.streamer.toLowerCase().indexOf("rtmp://") == 0) {
                    d.provider = "rtmp"
                }
                if (e.type) {
                    d.provider = e.type.toLowerCase()
                }
            }
            if (d.provider == "audio") {
                d.provider = "sound"
            }
            return d
        };
        b.utils.getOuterHTML = function (c) {
            if (c.outerHTML) {
                return c.outerHTML
            } else {
                try {
                    return new XMLSerializer().serializeToString(c)
                } catch (d) {
                    return ""
                }
            }
        };
        b.utils.setOuterHTML = function (f, e) {
            if (f.outerHTML) {
                f.outerHTML = e
            } else {
                var g = document.createElement("div");
                g.innerHTML = e;
                var c = document.createRange();
                c.selectNodeContents(g);
                var d = c.extractContents();
                f.parentNode.insertBefore(d, f);
                f.parentNode.removeChild(f)
            }
        };
        b.utils.hasFlash = function () {
            if (typeof navigator.plugins != "undefined" && typeof navigator.plugins["Shockwave Flash"] != "undefined") {
                return true
            }
            if (typeof window.ActiveXObject != "undefined") {
                try {
                    new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
                    return true
                } catch (c) { }
            }
            return false
        };
        b.utils.getPluginName = function (c) {
            if (c.lastIndexOf("/") >= 0) {
                c = c.substring(c.lastIndexOf("/") + 1, c.length)
            }
            if (c.lastIndexOf("-") >= 0) {
                c = c.substring(0, c.lastIndexOf("-"))
            }
            if (c.lastIndexOf(".swf") >= 0) {
                c = c.substring(0, c.lastIndexOf(".swf"))
            }
            if (c.lastIndexOf(".js") >= 0) {
                c = c.substring(0, c.lastIndexOf(".js"))
            }
            return c
        };
        b.utils.getPluginVersion = function (c) {
            if (c.lastIndexOf("-") >= 0) {
                if (c.lastIndexOf(".js") >= 0) {
                    return c.substring(c.lastIndexOf("-") + 1, c.lastIndexOf(".js"))
                } else {
                    if (c.lastIndexOf(".swf") >= 0) {
                        return c.substring(c.lastIndexOf("-") + 1, c.lastIndexOf(".swf"))
                    } else {
                        return c.substring(c.lastIndexOf("-") + 1)
                    }
                }
            }
            return ""
        };
        b.utils.getAbsolutePath = function (j, h) {
            if (!b.utils.exists(h)) {
                h = document.location.href
            }
            if (!b.utils.exists(j)) {
                return undefined
            }
            if (a(j)) {
                return j
            }
            var k = h.substring(0, h.indexOf("://") + 3);
            var g = h.substring(k.length, h.indexOf("/", k.length + 1));
            var d;
            if (j.indexOf("/") === 0) {
                d = j.split("/")
            } else {
                var e = h.split("?")[0];
                e = e.substring(k.length + g.length + 1, e.lastIndexOf("/"));
                d = e.split("/").concat(j.split("/"))
            }
            var c = [];
            for (var f = 0; f < d.length; f++) {
                if (!d[f] || !b.utils.exists(d[f]) || d[f] == ".") {
                    continue
                } else {
                    if (d[f] == "..") {
                        c.pop()
                    } else {
                        c.push(d[f])
                    }
                }
            }
            return k + g + "/" + c.join("/")
        };

        function a(d) {
            if (!b.utils.exists(d)) {
                return
            }
            var e = d.indexOf("://");
            var c = d.indexOf("?");
            return (e > 0 && (c < 0 || (c > e)))
        }
        b.utils.pluginPathType = {
            ABSOLUTE: "ABSOLUTE",
            RELATIVE: "RELATIVE",
            CDN: "CDN"
        };
        b.utils.getPluginPathType = function (d) {
            if (typeof d != "string") {
                return
            }
            d = d.split("?")[0];
            var e = d.indexOf("://");
            if (e > 0) {
                return b.utils.pluginPathType.ABSOLUTE
            }
            var c = d.indexOf("/");
            var f = b.utils.extension(d);
            if (e < 0 && c < 0 && (!f || !isNaN(f))) {
                return b.utils.pluginPathType.CDN
            }
            return b.utils.pluginPathType.RELATIVE
        };
        b.utils.mapEmpty = function (c) {
            for (var d in c) {
                return false
            }
            return true
        };
        b.utils.mapLength = function (d) {
            var c = 0;
            for (var e in d) {
                c++
            }
            return c
        };
        b.utils.log = function (d, c) {
            if (typeof console != "undefined" && typeof console.log != "undefined") {
                if (c) {
                    console.log(d, c)
                } else {
                    console.log(d)
                }
            }
        };
        b.utils.css = function (d, g, c) {
            if (b.utils.exists(d)) {
                for (var e in g) {
                    try {
                        if (typeof g[e] === "undefined") {
                            continue
                        } else {
                            if (typeof g[e] == "number" && !(e == "zIndex" || e == "opacity")) {
                                if (isNaN(g[e])) {
                                    continue
                                }
                                if (e.match(/color/i)) {
                                    g[e] = "#" + b.utils.strings.pad(g[e].toString(16), 6)
                                } else {
                                    g[e] = Math.ceil(g[e]) + "px"
                                }
                            }
                        }
                        d.style[e] = g[e]
                    } catch (f) { }
                }
            }
        };
        b.utils.isYouTube = function (c) {
            return (c.indexOf("youtube.com") > -1 || c.indexOf("youtu.be") > -1)
        };
        b.utils.transform = function (c, d) {
            c.style.webkitTransform = d;
            c.style.MozTransform = d;
            c.style.OTransform = d
        };
        b.utils.stretch = function (h, n, m, f, l, g) {
            if (typeof m == "undefined" || typeof f == "undefined" || typeof l == "undefined" || typeof g == "undefined") {
                return
            }
            var d = m / l;
            var e = f / g;
            var k = 0;
            var j = 0;
            n.style.overflow = "hidden";
            b.utils.transform(n, "");
            var c = {};
            switch (h.toUpperCase()) {
                case b.utils.stretching.NONE:
                    c.width = l;
                    c.height = g;
                    break;
                case b.utils.stretching.UNIFORM:
                    if (d > e) {
                        c.width = l * e;
                        c.height = g * e
                    } else {
                        c.width = l * d;
                        c.height = g * d
                    }
                    break;
                case b.utils.stretching.FILL:
                    if (d > e) {
                        c.width = l * d;
                        c.height = g * d
                    } else {
                        c.width = l * e;
                        c.height = g * e
                    }
                    break;
                case b.utils.stretching.EXACTFIT:
                    b.utils.transform(n, ["scale(", d, ",", e, ")", " translate(0px,0px)"].join(""));
                    c.width = l;
                    c.height = g;
                    break;
                default:
                    break
            }
            c.top = (f - c.height) / 2;
            c.left = (m - c.width) / 2;
            b.utils.css(n, c)
        };
        b.utils.stretching = {
            NONE: "NONE",
            FILL: "FILL",
            UNIFORM: "UNIFORM",
            EXACTFIT: "EXACTFIT"
        };
        b.utils.deepReplaceKeyName = function (h, e, c) {
            switch (b.utils.typeOf(h)) {
                case "array":
                    for (var g = 0; g < h.length; g++) {
                        h[g] = b.utils.deepReplaceKeyName(h[g], e, c)
                    }
                    break;
                case "object":
                    for (var f in h) {
                        var d = f.replace(new RegExp(e, "g"), c);
                        h[d] = b.utils.deepReplaceKeyName(h[f], e, c);
                        if (f != d) {
                            delete h[f]
                        }
                    }
                    break
            }
            return h
        };
        b.utils.isInArray = function (e, d) {
            if (!(e) || !(e instanceof Array)) {
                return false
            }
            for (var c = 0; c < e.length; c++) {
                if (d === e[c]) {
                    return true
                }
            }
            return false
        };
        b.utils.exists = function (c) {
            switch (typeof (c)) {
                case "string":
                    return (c.length > 0);
                    break;
                case "object":
                    return (c !== null);
                case "undefined":
                    return false
            }
            return true
        };
        b.utils.empty = function (c) {
            if (typeof c.hasChildNodes == "function") {
                while (c.hasChildNodes()) {
                    c.removeChild(c.firstChild)
                }
            }
        };
        b.utils.parseDimension = function (c) {
            if (typeof c == "string") {
                if (c === "") {
                    return 0
                } else {
                    if (c.lastIndexOf("%") > -1) {
                        return c
                    } else {
                        return parseInt(c.replace("px", ""), 10)
                    }
                }
            }
            return c
        };
        b.utils.getDimensions = function (c) {
            if (c && c.style) {
                return {
                    x: b.utils.parseDimension(c.style.left),
                    y: b.utils.parseDimension(c.style.top),
                    width: b.utils.parseDimension(c.style.width),
                    height: b.utils.parseDimension(c.style.height)
                }
            } else {
                return {}
            }
        };
        b.utils.timeFormat = function (c) {
            str = "00:00";
            if (c > 0) {
                str = Math.floor(c / 60) < 10 ? "0" + Math.floor(c / 60) + ":" : Math.floor(c / 60) + ":";
                str += Math.floor(c % 60) < 10 ? "0" + Math.floor(c % 60) : Math.floor(c % 60)
            }
            return str
        }
    })(jwplayer);
    (function (a) {
        a.events = function () { };
        a.events.COMPLETE = "COMPLETE";
        a.events.ERROR = "ERROR"
    })(jwplayer);
    (function (jwplayer) {
        jwplayer.events.eventdispatcher = function (debug) {
            var _debug = debug;
            var _listeners;
            var _globallisteners;
            this.resetEventListeners = function () {
                _listeners = {};
                _globallisteners = []
            };
            this.resetEventListeners();
            this.addEventListener = function (type, listener, count) {
                try {
                    if (!jwplayer.utils.exists(_listeners[type])) {
                        _listeners[type] = []
                    }
                    if (typeof (listener) == "string") {
                        eval("listener = " + listener)
                    }
                    _listeners[type].push({
                        listener: listener,
                        count: count
                    })
                } catch (err) {
                    jwplayer.utils.log("error", err)
                }
                return false
            };
            this.removeEventListener = function (type, listener) {
                if (!_listeners[type]) {
                    return
                }
                try {
                    for (var listenerIndex = 0; listenerIndex < _listeners[type].length; listenerIndex++) {
                        if (_listeners[type][listenerIndex].listener.toString() == listener.toString()) {
                            _listeners[type].splice(listenerIndex, 1);
                            break
                        }
                    }
                } catch (err) {
                    jwplayer.utils.log("error", err)
                }
                return false
            };
            this.addGlobalListener = function (listener, count) {
                try {
                    if (typeof (listener) == "string") {
                        eval("listener = " + listener)
                    }
                    _globallisteners.push({
                        listener: listener,
                        count: count
                    })
                } catch (err) {
                    jwplayer.utils.log("error", err)
                }
                return false
            };
            this.removeGlobalListener = function (listener) {
                if (!_globallisteners[type]) {
                    return
                }
                try {
                    for (var globalListenerIndex = 0; globalListenerIndex < _globallisteners.length; globalListenerIndex++) {
                        if (_globallisteners[globalListenerIndex].listener.toString() == listener.toString()) {
                            _globallisteners.splice(globalListenerIndex, 1);
                            break
                        }
                    }
                } catch (err) {
                    jwplayer.utils.log("error", err)
                }
                return false
            };
            this.sendEvent = function (type, data) {
                if (!jwplayer.utils.exists(data)) {
                    data = {}
                }
                if (_debug) {
                    jwplayer.utils.log(type, data)
                }
                if (typeof _listeners[type] != "undefined") {
                    for (var listenerIndex = 0; listenerIndex < _listeners[type].length; listenerIndex++) {
                        try {
                            _listeners[type][listenerIndex].listener(data)
                        } catch (err) {
                            jwplayer.utils.log("There was an error while handling a listener: " + err.toString(), _listeners[type][listenerIndex].listener)
                        }
                        if (_listeners[type][listenerIndex]) {
                            if (_listeners[type][listenerIndex].count === 1) {
                                delete _listeners[type][listenerIndex]
                            } else {
                                if (_listeners[type][listenerIndex].count > 0) {
                                    _listeners[type][listenerIndex].count = _listeners[type][listenerIndex].count - 1
                                }
                            }
                        }
                    }
                }
                for (var globalListenerIndex = 0; globalListenerIndex < _globallisteners.length; globalListenerIndex++) {
                    try {
                        _globallisteners[globalListenerIndex].listener(data)
                    } catch (err) {
                        jwplayer.utils.log("There was an error while handling a listener: " + err.toString(), _globallisteners[globalListenerIndex].listener)
                    }
                    if (_globallisteners[globalListenerIndex]) {
                        if (_globallisteners[globalListenerIndex].count === 1) {
                            delete _globallisteners[globalListenerIndex]
                        } else {
                            if (_globallisteners[globalListenerIndex].count > 0) {
                                _globallisteners[globalListenerIndex].count = _globallisteners[globalListenerIndex].count - 1
                            }
                        }
                    }
                }
            }
        }
    })(jwplayer);
    (function (a) {
        var b = {};
        a.utils.animations = function () { };
        a.utils.animations.transform = function (c, d) {
            c.style.webkitTransform = d;
            c.style.MozTransform = d;
            c.style.OTransform = d;
            c.style.msTransform = d
        };
        a.utils.animations.transformOrigin = function (c, d) {
            c.style.webkitTransformOrigin = d;
            c.style.MozTransformOrigin = d;
            c.style.OTransformOrigin = d;
            c.style.msTransformOrigin = d
        };
        a.utils.animations.rotate = function (c, d) {
            a.utils.animations.transform(c, ["rotate(", d, "deg)"].join(""))
        };
        a.utils.cancelAnimation = function (c) {
            delete b[c.id]
        };
        a.utils.fadeTo = function (m, f, e, j, h, d) {
            if (b[m.id] != d && a.utils.exists(d)) {
                return
            }
            if (m.style.opacity == f) {
                return
            }
            var c = new Date().getTime();
            if (d > c) {
                setTimeout(function () {
                    a.utils.fadeTo(m, f, e, j, 0, d)
                }, d - c)
            }
            if (m.style.display == "none") {
                m.style.display = "block"
            }
            if (!a.utils.exists(j)) {
                j = m.style.opacity === "" ? 1 : m.style.opacity
            }
            if (m.style.opacity == f && m.style.opacity !== "" && a.utils.exists(d)) {
                if (f === 0) {
                    m.style.display = "none"
                }
                return
            }
            if (!a.utils.exists(d)) {
                d = c;
                b[m.id] = d
            }
            if (!a.utils.exists(h)) {
                h = 0
            }
            var k = (e > 0) ? ((c - d) / (e * 1000)) : 0;
            k = k > 1 ? 1 : k;
            var l = f - j;
            var g = j + (k * l);
            if (g > 1) {
                g = 1
            } else {
                if (g < 0) {
                    g = 0
                }
            }
            m.style.opacity = g;
            if (h > 0) {
                b[m.id] = d + h * 1000;
                a.utils.fadeTo(m, f, e, j, 0, b[m.id]);
                return
            }
            setTimeout(function () {
                a.utils.fadeTo(m, f, e, j, 0, d)
            }, 10)
        }
    })(jwplayer);
    (function (a) {
        a.utils.arrays = function () { };
        a.utils.arrays.indexOf = function (c, d) {
            for (var b = 0; b < c.length; b++) {
                if (c[b] == d) {
                    return b
                }
            }
            return -1
        };
        a.utils.arrays.remove = function (c, d) {
            var b = a.utils.arrays.indexOf(c, d);
            if (b > -1) {
                c.splice(b, 1)
            }
        }
    })(jwplayer);
    (function (a) {
        a.utils.extensionmap = {
            "3gp": {
                html5: "video/3gpp",
                flash: "video"
            },
            "3gpp": {
                html5: "video/3gpp"
            },
            "3g2": {
                html5: "video/3gpp2",
                flash: "video"
            },
            "3gpp2": {
                html5: "video/3gpp2"
            },
            flv: {
                flash: "video"
            },
            f4a: {
                html5: "audio/mp4"
            },
            f4b: {
                html5: "audio/mp4",
                flash: "video"
            },
            f4v: {
                html5: "video/mp4",
                flash: "video"
            },
            mov: {
                html5: "video/quicktime",
                flash: "video"
            },
            m4a: {
                html5: "audio/mp4",
                flash: "video"
            },
            m4b: {
                html5: "audio/mp4"
            },
            m4p: {
                html5: "audio/mp4"
            },
            m4v: {
                html5: "video/mp4",
                flash: "video"
            },
            mp4: {
                html5: "video/mp4",
                flash: "video"
            },
            rbs: {
                flash: "sound"
            },
            aac: {
                html5: "audio/aac",
                flash: "video"
            },
            mp3: {
                html5: "audio/mp3",
                flash: "sound"
            },
            ogg: {
                html5: "audio/ogg"
            },
            oga: {
                html5: "audio/ogg"
            },
            ogv: {
                html5: "video/ogg"
            },
            webm: {
                html5: "video/webm"
            },
            m3u8: {
                html5: "audio/x-mpegurl"
            },
            gif: {
                flash: "image"
            },
            jpeg: {
                flash: "image"
            },
            jpg: {
                flash: "image"
            },
            swf: {
                flash: "image"
            },
            png: {
                flash: "image"
            },
            wav: {
                html5: "audio/x-wav"
            }
        }
    })(jwplayer);
    (function (e) {
        e.utils.mediaparser = function () { };
        var g = {
            element: {
                width: "width",
                height: "height",
                id: "id",
                "class": "className",
                name: "name"
            },
            media: {
                src: "file",
                preload: "preload",
                autoplay: "autostart",
                loop: "repeat",
                controls: "controls"
            },
            source: {
                src: "file",
                type: "type",
                media: "media",
                "data-jw-width": "width",
                "data-jw-bitrate": "bitrate"
            },
            video: {
                poster: "image"
            }
        };
        var f = {};
        e.utils.mediaparser.parseMedia = function (j) {
            return d(j)
        };

        function c(k, j) {
            if (!e.utils.exists(j)) {
                j = g[k]
            } else {
                e.utils.extend(j, g[k])
            }
            return j
        }
        function d(n, j) {
            if (f[n.tagName.toLowerCase()] && !e.utils.exists(j)) {
                return f[n.tagName.toLowerCase()](n)
            } else {
                j = c("element", j);
                var o = {};
                for (var k in j) {
                    if (k != "length") {
                        var m = n.getAttribute(k);
                        if (e.utils.exists(m)) {
                            o[j[k]] = m
                        }
                    }
                }
                var l = n.style["#background-color"];
                if (l && !(l == "transparent" || l == "rgba(0, 0, 0, 0)")) {
                    o.screencolor = l
                }
                return o
            }
        }
        function h(n, k) {
            k = c("media", k);
            var l = [];
            var j = e.utils.selectors("source", n);
            for (var m in j) {
                if (!isNaN(m)) {
                    l.push(a(j[m]))
                }
            }
            var o = d(n, k);
            if (e.utils.exists(o.file)) {
                l[0] = {
                    file: o.file
                }
            }
            o.levels = l;
            return o
        }
        function a(l, k) {
            k = c("source", k);
            var j = d(l, k);
            j.width = j.width ? j.width : 0;
            j.bitrate = j.bitrate ? j.bitrate : 0;
            return j
        }
        function b(l, k) {
            k = c("video", k);
            var j = h(l, k);
            return j
        }
        f.media = h;
        f.audio = h;
        f.source = a;
        f.video = b
    })(jwplayer);
    (function (a) {
        a.utils.loaderstatus = {
            NEW: "NEW",
            LOADING: "LOADING",
            ERROR: "ERROR",
            COMPLETE: "COMPLETE"
        };
        a.utils.scriptloader = function (c) {
            var d = a.utils.loaderstatus.NEW;
            var b = new a.events.eventdispatcher();
            a.utils.extend(this, b);
            this.load = function () {
                if (d == a.utils.loaderstatus.NEW) {
                    d = a.utils.loaderstatus.LOADING;
                    var e = document.createElement("script");
                    e.onload = function (f) {
                        d = a.utils.loaderstatus.COMPLETE;
                        b.sendEvent(a.events.COMPLETE)
                    };
                    e.onerror = function (f) {
                        d = a.utils.loaderstatus.ERROR;
                        b.sendEvent(a.events.ERROR)
                    };
                    e.onreadystatechange = function () {
                        if (e.readyState == "loaded" || e.readyState == "complete") {
                            d = a.utils.loaderstatus.COMPLETE;
                            b.sendEvent(a.events.COMPLETE)
                        }
                    };
                    document.getElementsByTagName("head")[0].appendChild(e);
                    e.src = c
                }
            };
            this.getStatus = function () {
                return d
            }
        }
    })(jwplayer);
    (function (a) {
        a.utils.selectors = function (b, e) {
            if (!a.utils.exists(e)) {
                e = document
            }
            b = a.utils.strings.trim(b);
            var c = b.charAt(0);
            if (c == "#") {
                return e.getElementById(b.substr(1))
            } else {
                if (c == ".") {
                    if (e.getElementsByClassName) {
                        return e.getElementsByClassName(b.substr(1))
                    } else {
                        return a.utils.selectors.getElementsByTagAndClass("*", b.substr(1))
                    }
                } else {
                    if (b.indexOf(".") > 0) {
                        var d = b.split(".");
                        return a.utils.selectors.getElementsByTagAndClass(d[0], d[1])
                    } else {
                        return e.getElementsByTagName(b)
                    }
                }
            }
            return null
        };
        a.utils.selectors.getElementsByTagAndClass = function (e, h, g) {
            var j = [];
            if (!a.utils.exists(g)) {
                g = document
            }
            var f = g.getElementsByTagName(e);
            for (var d = 0; d < f.length; d++) {
                if (a.utils.exists(f[d].className)) {
                    var c = f[d].className.split(" ");
                    for (var b = 0; b < c.length; b++) {
                        if (c[b] == h) {
                            j.push(f[d])
                        }
                    }
                }
            }
            return j
        }
    })(jwplayer);
    (function (a) {
        a.utils.strings = function () { };
        a.utils.strings.trim = function (b) {
            return b.replace(/^\s*/, "").replace(/\s*$/, "")
        };
        a.utils.strings.pad = function (c, d, b) {
            if (!b) {
                b = "0"
            }
            while (c.length < d) {
                c = b + c
            }
            return c
        };
        a.utils.strings.serialize = function (b) {
            if (b == null) {
                return null
            } else {
                if (b == "true") {
                    return true
                } else {
                    if (b == "false") {
                        return false
                    } else {
                        if (isNaN(Number(b)) || b.length > 5 || b.length == 0) {
                            return b
                        } else {
                            return Number(b)
                        }
                    }
                }
            }
        };
        a.utils.strings.seconds = function (d) {
            d = d.replace(",", ".");
            var b = d.split(":");
            var c = 0;
            if (d.substr(-1) == "s") {
                c = Number(d.substr(0, d.length - 1))
            } else {
                if (d.substr(-1) == "m") {
                    c = Number(d.substr(0, d.length - 1)) * 60
                } else {
                    if (d.substr(-1) == "h") {
                        c = Number(d.substr(0, d.length - 1)) * 3600
                    } else {
                        if (b.length > 1) {
                            c = Number(b[b.length - 1]);
                            c += Number(b[b.length - 2]) * 60;
                            if (b.length == 3) {
                                c += Number(b[b.length - 3]) * 3600
                            }
                        } else {
                            c = Number(d)
                        }
                    }
                }
            }
            return c
        };
        a.utils.strings.xmlAttribute = function (b, c) {
            for (var d = 0; d < b.attributes.length; d++) {
                if (b.attributes[d].name && b.attributes[d].name.toLowerCase() == c.toLowerCase()) {
                    return b.attributes[d].value.toString()
                }
            }
            return ""
        };
        a.utils.strings.jsonToString = function (f) {
            var h = h || {};
            if (h && h.stringify) {
                return h.stringify(f)
            }
            var c = typeof (f);
            if (c != "object" || f === null) {
                if (c == "string") {
                    f = '"' + f + '"'
                } else {
                    return String(f)
                }
            } else {
                var g = [],
                    b = (f && f.constructor == Array);
                for (var d in f) {
                    var e = f[d];
                    switch (typeof (e)) {
                        case "string":
                            e = '"' + e + '"';
                            break;
                        case "object":
                            if (a.utils.exists(e)) {
                                e = a.utils.strings.jsonToString(e)
                            }
                            break
                    }
                    if (b) {
                        if (typeof (e) != "function") {
                            g.push(String(e))
                        }
                    } else {
                        if (typeof (e) != "function") {
                            g.push('"' + d + '":' + String(e))
                        }
                    }
                }
                if (b) {
                    return "[" + String(g) + "]"
                } else {
                    return "{" + String(g) + "}"
                }
            }
        }
    })(jwplayer);
    (function (c) {
        var d = new RegExp(/^(#|0x)[0-9a-fA-F]{3,6}/);
        c.utils.typechecker = function (g, f) {
            f = !c.utils.exists(f) ? b(g) : f;
            return e(g, f)
        };

        function b(f) {
            var g = ["true", "false", "t", "f"];
            if (g.toString().indexOf(f.toLowerCase().replace(" ", "")) >= 0) {
                return "boolean"
            } else {
                if (d.test(f)) {
                    return "color"
                } else {
                    if (!isNaN(parseInt(f, 10)) && parseInt(f, 10).toString().length == f.length) {
                        return "integer"
                    } else {
                        if (!isNaN(parseFloat(f)) && parseFloat(f).toString().length == f.length) {
                            return "float"
                        }
                    }
                }
            }
            return "string"
        }
        function e(g, f) {
            if (!c.utils.exists(f)) {
                return g
            }
            switch (f) {
                case "color":
                    if (g.length > 0) {
                        return a(g)
                    }
                    return null;
                case "integer":
                    return parseInt(g, 10);
                case "float":
                    return parseFloat(g);
                case "boolean":
                    if (g.toLowerCase() == "true") {
                        return true
                    } else {
                        if (g == "1") {
                            return true
                        }
                    }
                    return false
            }
            return g
        }
        function a(f) {
            switch (f.toLowerCase()) {
                case "blue":
                    return parseInt("0000FF", 16);
                case "green":
                    return parseInt("00FF00", 16);
                case "red":
                    return parseInt("FF0000", 16);
                case "cyan":
                    return parseInt("00FFFF", 16);
                case "magenta":
                    return parseInt("FF00FF", 16);
                case "yellow":
                    return parseInt("FFFF00", 16);
                case "black":
                    return parseInt("000000", 16);
                case "white":
                    return parseInt("FFFFFF", 16);
                default:
                    f = f.replace(/(#|0x)?([0-9A-F]{3,6})$/gi, "$2");
                    if (f.length == 3) {
                        f = f.charAt(0) + f.charAt(0) + f.charAt(1) + f.charAt(1) + f.charAt(2) + f.charAt(2)
                    }
                    return parseInt(f, 16)
            }
            return parseInt("000000", 16)
        }
    })(jwplayer);
    (function (a) {
        a.utils.parsers = function () { };
        a.utils.parsers.localName = function (b) {
            if (!b) {
                return ""
            } else {
                if (b.localName) {
                    return b.localName
                } else {
                    if (b.baseName) {
                        return b.baseName
                    } else {
                        return ""
                    }
                }
            }
        };
        a.utils.parsers.textContent = function (b) {
            if (!b) {
                return ""
            } else {
                if (b.textContent) {
                    return b.textContent
                } else {
                    if (b.text) {
                        return b.text
                    } else {
                        return ""
                    }
                }
            }
        }
    })(jwplayer);
    (function (a) {
        a.utils.parsers.jwparser = function () { };
        a.utils.parsers.jwparser.PREFIX = "jwplayer";
        a.utils.parsers.jwparser.parseEntry = function (c, d) {
            for (var b = 0; b < c.childNodes.length; b++) {
                if (c.childNodes[b].prefix == a.utils.parsers.jwparser.PREFIX) {
                    d[a.utils.parsers.localName(c.childNodes[b])] = a.utils.strings.serialize(a.utils.parsers.textContent(c.childNodes[b]))
                }
                if (!d.file && String(d.link).toLowerCase().indexOf("youtube") > -1) {
                    d.file = d.link
                }
            }
            return d
        };
        a.utils.parsers.jwparser.getProvider = function (c) {
            if (c.type) {
                return c.type
            } else {
                if (c.file.indexOf("youtube.com/w") > -1 || c.file.indexOf("youtube.com/v") > -1 || c.file.indexOf("youtu.be/") > -1) {
                    return "youtube"
                } else {
                    if (c.streamer && c.streamer.indexOf("rtmp") == 0) {
                        return "rtmp"
                    } else {
                        if (c.streamer && c.streamer.indexOf("http") == 0) {
                            return "http"
                        } else {
                            var b = a.utils.strings.extension(c.file);
                            if (extensions.hasOwnProperty(b)) {
                                return extensions[b]
                            }
                        }
                    }
                }
            }
            return ""
        }
    })(jwplayer);
    (function (a) {
        a.utils.parsers.mediaparser = function () { };
        a.utils.parsers.mediaparser.PREFIX = "media";
        a.utils.parsers.mediaparser.parseGroup = function (d, f) {
            var e = false;
            for (var c = 0; c < d.childNodes.length; c++) {
                if (d.childNodes[c].prefix == a.utils.parsers.mediaparser.PREFIX) {
                    if (!a.utils.parsers.localName(d.childNodes[c])) {
                        continue
                    }
                    switch (a.utils.parsers.localName(d.childNodes[c]).toLowerCase()) {
                        case "content":
                            if (!e) {
                                f.file = a.utils.strings.xmlAttribute(d.childNodes[c], "url")
                            }
                            if (a.utils.strings.xmlAttribute(d.childNodes[c], "duration")) {
                                f.duration = a.utils.strings.seconds(a.utils.strings.xmlAttribute(d.childNodes[c], "duration"))
                            }
                            if (a.utils.strings.xmlAttribute(d.childNodes[c], "start")) {
                                f.start = a.utils.strings.seconds(a.utils.strings.xmlAttribute(d.childNodes[c], "start"))
                            }
                            if (d.childNodes[c].childNodes && d.childNodes[c].childNodes.length > 0) {
                                f = a.utils.parsers.mediaparser.parseGroup(d.childNodes[c], f)
                            }
                            if (a.utils.strings.xmlAttribute(d.childNodes[c], "width") || a.utils.strings.xmlAttribute(d.childNodes[c], "bitrate") || a.utils.strings.xmlAttribute(d.childNodes[c], "url")) {
                                if (!f.levels) {
                                    f.levels = []
                                }
                                f.levels.push({
                                    width: a.utils.strings.xmlAttribute(d.childNodes[c], "width"),
                                    bitrate: a.utils.strings.xmlAttribute(d.childNodes[c], "bitrate"),
                                    file: a.utils.strings.xmlAttribute(d.childNodes[c], "url")
                                })
                            }
                            break;
                        case "title":
                            f.title = a.utils.parsers.textContent(d.childNodes[c]);
                            break;
                        case "description":
                            f.description = a.utils.parsers.textContent(d.childNodes[c]);
                            break;
                        case "keywords":
                            f.tags = a.utils.parsers.textContent(d.childNodes[c]);
                            break;
                        case "thumbnail":
                            f.image = a.utils.strings.xmlAttribute(d.childNodes[c], "url");
                            break;
                        case "credit":
                            f.author = a.utils.parsers.textContent(d.childNodes[c]);
                            break;
                        case "player":
                            var b = d.childNodes[c].url;
                            if (b.indexOf("youtube.com") >= 0 || b.indexOf("youtu.be") >= 0) {
                                e = true;
                                f.file = a.utils.strings.xmlAttribute(d.childNodes[c], "url")
                            }
                            break;
                        case "group":
                            a.utils.parsers.mediaparser.parseGroup(d.childNodes[c], f);
                            break
                    }
                }
            }
            return f
        }
    })(jwplayer);
    (function (b) {
        b.utils.parsers.rssparser = function () { };
        b.utils.parsers.rssparser.parse = function (f) {
            var c = [];
            for (var e = 0; e < f.childNodes.length; e++) {
                if (b.utils.parsers.localName(f.childNodes[e]).toLowerCase() == "channel") {
                    for (var d = 0; d < f.childNodes[e].childNodes.length; d++) {
                        if (b.utils.parsers.localName(f.childNodes[e].childNodes[d]).toLowerCase() == "item") {
                            c.push(a(f.childNodes[e].childNodes[d]))
                        }
                    }
                }
            }
            return c
        };

        function a(d) {
            var e = {};
            for (var c = 0; c < d.childNodes.length; c++) {
                if (!b.utils.parsers.localName(d.childNodes[c])) {
                    continue
                }
                switch (b.utils.parsers.localName(d.childNodes[c]).toLowerCase()) {
                    case "enclosure":
                        e.file = b.utils.strings.xmlAttribute(d.childNodes[c], "url");
                        break;
                    case "title":
                        e.title = b.utils.parsers.textContent(d.childNodes[c]);
                        break;
                    case "pubdate":
                        e.date = b.utils.parsers.textContent(d.childNodes[c]);
                        break;
                    case "description":
                        e.description = b.utils.parsers.textContent(d.childNodes[c]);
                        break;
                    case "link":
                        e.link = b.utils.parsers.textContent(d.childNodes[c]);
                        break;
                    case "category":
                        if (e.tags) {
                            e.tags += b.utils.parsers.textContent(d.childNodes[c])
                        } else {
                            e.tags = b.utils.parsers.textContent(d.childNodes[c])
                        }
                        break
                }
            }
            e = b.utils.parsers.mediaparser.parseGroup(d, e);
            e = b.utils.parsers.jwparser.parseEntry(d, e);
            return new b.html5.playlistitem(e)
        }
    })(jwplayer);
    (function (a) {
        var c = {};
        var b = {};
        a.plugins = function () { };
        a.plugins.loadPlugins = function (e, d) {
            b[e] = new a.plugins.pluginloader(new a.plugins.model(c), d);
            return b[e]
        };
        a.plugins.registerPlugin = function (h, f, e) {
            var d = a.utils.getPluginName(h);
            if (c[d]) {
                c[d].registerPlugin(h, f, e)
            } else {
                a.utils.log("A plugin (" + h + ") was registered with the player that was not loaded. Please check your configuration.");
                for (var g in b) {
                    b[g].pluginFailed()
                }
            }
        }
    })(jwplayer);
    (function (a) {
        a.plugins.model = function (b) {
            this.addPlugin = function (c) {
                var d = a.utils.getPluginName(c);
                if (!b[d]) {
                    b[d] = new a.plugins.plugin(c)
                }
                return b[d]
            }
        }
    })(jwplayer);
    (function (a) {
        a.plugins.pluginmodes = {
            FLASH: "FLASH",
            JAVASCRIPT: "JAVASCRIPT",
            HYBRID: "HYBRID"
        };
        a.plugins.plugin = function (b) {
            var d = "http://lp.longtailvideo.com";
            var j = a.utils.loaderstatus.NEW;
            var k;
            var h;
            var l;
            var c = new a.events.eventdispatcher();
            a.utils.extend(this, c);

            function e() {
                switch (a.utils.getPluginPathType(b)) {
                    case a.utils.pluginPathType.ABSOLUTE:
                        return b;
                    case a.utils.pluginPathType.RELATIVE:
                        return a.utils.getAbsolutePath(b, window.location.href);
                    case a.utils.pluginPathType.CDN:
                        var n = a.utils.getPluginName(b);
                        var m = a.utils.getPluginVersion(b);
                        return d + "/" + a.version.split(".")[0] + "/" + n + "/" + n + (m !== "" ? ("-" + m) : "") + ".js"
                }
            }
            function g(m) {
                l = setTimeout(function () {
                    j = a.utils.loaderstatus.COMPLETE;
                    c.sendEvent(a.events.COMPLETE)
                }, 1000)
            }
            function f(m) {
                j = a.utils.loaderstatus.ERROR;
                c.sendEvent(a.events.ERROR)
            }
            this.load = function () {
                if (j == a.utils.loaderstatus.NEW) {
                    if (b.lastIndexOf(".swf") > 0) {
                        k = b;
                        j = a.utils.loaderstatus.COMPLETE;
                        c.sendEvent(a.events.COMPLETE);
                        return
                    }
                    j = a.utils.loaderstatus.LOADING;
                    var m = new a.utils.scriptloader(e());
                    m.addEventListener(a.events.COMPLETE, g);
                    m.addEventListener(a.events.ERROR, f);
                    m.load()
                }
            };
            this.registerPlugin = function (o, n, m) {
                if (l) {
                    clearTimeout(l);
                    l = undefined
                }
                if (n && m) {
                    k = m;
                    h = n
                } else {
                    if (typeof n == "string") {
                        k = n
                    } else {
                        if (typeof n == "function") {
                            h = n
                        } else {
                            if (!n && !m) {
                                k = o
                            }
                        }
                    }
                }
                j = a.utils.loaderstatus.COMPLETE;
                c.sendEvent(a.events.COMPLETE)
            };
            this.getStatus = function () {
                return j
            };
            this.getPluginName = function () {
                return a.utils.getPluginName(b)
            };
            this.getFlashPath = function () {
                if (k) {
                    switch (a.utils.getPluginPathType(k)) {
                        case a.utils.pluginPathType.ABSOLUTE:
                            return k;
                        case a.utils.pluginPathType.RELATIVE:
                            if (b.lastIndexOf(".swf") > 0) {
                                return a.utils.getAbsolutePath(k, window.location.href)
                            }
                            return a.utils.getAbsolutePath(k, e());
                        case a.utils.pluginPathType.CDN:
                            if (k.indexOf("-") > -1) {
                                return k + "h"
                            }
                            return k + "-h"
                    }
                }
                return null
            };
            this.getJS = function () {
                return h
            };
            this.getPluginmode = function () {
                if (typeof k != "undefined" && typeof h != "undefined") {
                    return a.plugins.pluginmodes.HYBRID
                } else {
                    if (typeof k != "undefined") {
                        return a.plugins.pluginmodes.FLASH
                    } else {
                        if (typeof h != "undefined") {
                            return a.plugins.pluginmodes.JAVASCRIPT
                        }
                    }
                }
            };
            this.getNewInstance = function (n, m, o) {
                return new h(n, m, o)
            };
            this.getURL = function () {
                return b
            }
        }
    })(jwplayer);
    (function (a) {
        a.plugins.pluginloader = function (h, e) {
            var g = {};
            var k = a.utils.loaderstatus.NEW;
            var d = false;
            var b = false;
            var c = new a.events.eventdispatcher();
            a.utils.extend(this, c);

            function f() {
                if (!b) {
                    b = true;
                    k = a.utils.loaderstatus.COMPLETE;
                    c.sendEvent(a.events.COMPLETE)
                }
            }
            function j() {
                if (!b) {
                    var m = 0;
                    for (plugin in g) {
                        var l = g[plugin].getStatus();
                        if (l == a.utils.loaderstatus.LOADING || l == a.utils.loaderstatus.NEW) {
                            m++
                        }
                    }
                    if (m == 0) {
                        f()
                    }
                }
            }
            this.setupPlugins = function (n, l, s) {
                var m = {
                    length: 0,
                    plugins: {}
                };
                var p = {
                    length: 0,
                    plugins: {}
                };
                for (var o in g) {
                    var q = g[o].getPluginName();
                    if (g[o].getFlashPath()) {
                        m.plugins[g[o].getFlashPath()] = l.plugins[o];
                        m.plugins[g[o].getFlashPath()].pluginmode = g[o].getPluginmode();
                        m.length++
                    }
                    if (g[o].getJS()) {
                        var r = document.createElement("div");
                        r.id = n.id + "_" + q;
                        r.style.position = "absolute";
                        r.style.zIndex = p.length + 10;
                        p.plugins[q] = g[o].getNewInstance(n, l.plugins[o], r);
                        p.length++;
                        if (typeof p.plugins[q].resize != "undefined") {
                            n.onReady(s(p.plugins[q], r, true));
                            n.onResize(s(p.plugins[q], r))
                        }
                    }
                }
                n.plugins = p.plugins;
                return m
            };
            this.load = function () {
                k = a.utils.loaderstatus.LOADING;
                d = true;
                for (var l in e) {
                    if (a.utils.exists(l)) {
                        g[l] = h.addPlugin(l);
                        g[l].addEventListener(a.events.COMPLETE, j);
                        g[l].addEventListener(a.events.ERROR, j)
                    }
                }
                for (l in g) {
                    g[l].load()
                }
                d = false;
                j()
            };
            this.pluginFailed = function () {
                f()
            };
            this.getStatus = function () {
                return k
            }
        }
    })(jwplayer);
    (function (b) {
        var a = [];
        b.api = function (d) {
            this.container = d;
            this.id = d.id;
            var n = {};
            var s = {};
            var q = {};
            var c = [];
            var h = undefined;
            var l = false;
            var j = [];
            var p = b.utils.getOuterHTML(d);
            var r = {};
            var k = {};
            this.getBuffer = function () {
                return this.callInternal("jwGetBuffer")
            };
            this.getContainer = function () {
                return this.container
            };

            function e(u, t) {
                return function (z, v, w, x) {
                    if (u.renderingMode == "flash" || u.renderingMode == "html5") {
                        var y;
                        if (v) {
                            k[z] = v;
                            y = "jwplayer('" + u.id + "').callback('" + z + "')"
                        } else {
                            if (!v && k[z]) {
                                delete k[z]
                            }
                        }
                        h.jwDockSetButton(z, y, w, x)
                    }
                    return t
                }
            }
            this.getPlugin = function (t) {
                var v = this;
                var u = {};
                if (t == "dock") {
                    return b.utils.extend(u, {
                        setButton: e(v, u),
                        show: function () {
                            v.callInternal("jwDockShow");
                            return u
                        },
                        hide: function () {
                            v.callInternal("jwDockHide");
                            return u
                        },
                        onShow: function (w) {
                            v.componentListener("dock", b.api.events.JWPLAYER_COMPONENT_SHOW, w);
                            return u
                        },
                        onHide: function (w) {
                            v.componentListener("dock", b.api.events.JWPLAYER_COMPONENT_HIDE, w);
                            return u
                        }
                    })
                } else {
                    if (t == "controlbar") {
                        return b.utils.extend(u, {
                            show: function () {
                                v.callInternal("jwControlbarShow");
                                return u
                            },
                            hide: function () {
                                v.callInternal("jwControlbarHide");
                                return u
                            },
                            onShow: function (w) {
                                v.componentListener("controlbar", b.api.events.JWPLAYER_COMPONENT_SHOW, w);
                                return u
                            },
                            onHide: function (w) {
                                v.componentListener("controlbar", b.api.events.JWPLAYER_COMPONENT_HIDE, w);
                                return u
                            }
                        })
                    } else {
                        if (t == "display") {
                            return b.utils.extend(u, {
                                show: function () {
                                    v.callInternal("jwDisplayShow");
                                    return u
                                },
                                hide: function () {
                                    v.callInternal("jwDisplayHide");
                                    return u
                                },
                                onShow: function (w) {
                                    v.componentListener("display", b.api.events.JWPLAYER_COMPONENT_SHOW, w);
                                    return u
                                },
                                onHide: function (w) {
                                    v.componentListener("display", b.api.events.JWPLAYER_COMPONENT_HIDE, w);
                                    return u
                                }
                            })
                        } else {
                            return this.plugins[t]
                        }
                    }
                }
            };
            this.callback = function (t) {
                if (k[t]) {
                    return k[t]()
                }
            };
            this.getDuration = function () {
                return this.callInternal("jwGetDuration")
            };
            this.getFullscreen = function () {
                return this.callInternal("jwGetFullscreen")
            };
            this.getHeight = function () {
                return this.callInternal("jwGetHeight")
            };
            this.getLockState = function () {
                return this.callInternal("jwGetLockState")
            };
            this.getMeta = function () {
                return this.getItemMeta()
            };
            this.getMute = function () {
                return this.callInternal("jwGetMute")
            };
            this.getPlaylist = function () {
                var u = this.callInternal("jwGetPlaylist");
                if (this.renderingMode == "flash") {
                    b.utils.deepReplaceKeyName(u, "__dot__", ".")
                }
                for (var t = 0; t < u.length; t++) {
                    if (!b.utils.exists(u[t].index)) {
                        u[t].index = t
                    }
                }
                return u
            };
            this.getPlaylistItem = function (t) {
                if (!b.utils.exists(t)) {
                    t = this.getCurrentItem()
                }
                return this.getPlaylist()[t]
            };
            this.getPosition = function () {
                return this.callInternal("jwGetPosition")
            };
            this.getRenderingMode = function () {
                return this.renderingMode
            };
            this.getState = function () {
                return this.callInternal("jwGetState")
            };
            this.getVolume = function () {
                return this.callInternal("jwGetVolume")
            };
            this.getWidth = function () {
                return this.callInternal("jwGetWidth")
            };
            this.setFullscreen = function (t) {
                if (!b.utils.exists(t)) {
                    this.callInternal("jwSetFullscreen", !this.callInternal("jwGetFullscreen"))
                } else {
                    this.callInternal("jwSetFullscreen", t)
                }
                return this
            };
            this.setMute = function (t) {
                if (!b.utils.exists(t)) {
                    this.callInternal("jwSetMute", !this.callInternal("jwGetMute"))
                } else {
                    this.callInternal("jwSetMute", t)
                }
                return this
            };
            this.lock = function () {
                return this
            };
            this.unlock = function () {
                return this
            };
            this.load = function (t) {
                this.callInternal("jwLoad", t);
                return this
            };
            this.playlistItem = function (t) {
                this.callInternal("jwPlaylistItem", t);
                return this
            };
            this.playlistPrev = function () {
                this.callInternal("jwPlaylistPrev");
                return this
            };
            this.playlistNext = function () {
                this.callInternal("jwPlaylistNext");
                return this
            };
            this.resize = function (u, t) {
                if (this.renderingMode == "html5") {
                    h.jwResize(u, t)
                } else {
                    this.container.width = u;
                    this.container.height = t
                }
                return this
            };
            this.play = function (t) {
                if (typeof t == "undefined") {
                    t = this.getState();
                    if (t == b.api.events.state.PLAYING || t == b.api.events.state.BUFFERING) {
                        this.callInternal("jwPause")
                    } else {
                        this.callInternal("jwPlay")
                    }
                } else {
                    this.callInternal("jwPlay", t)
                }
                return this
            };
            this.pause = function (t) {
                if (typeof t == "undefined") {
                    t = this.getState();
                    if (t == b.api.events.state.PLAYING || t == b.api.events.state.BUFFERING) {
                        this.callInternal("jwPause")
                    } else {
                        this.callInternal("jwPlay")
                    }
                } else {
                    this.callInternal("jwPause", t)
                }
                return this
            };
            this.stop = function () {
                this.callInternal("jwStop");
                return this
            };
            this.seek = function (t) {
                this.callInternal("jwSeek", t);
                return this
            };
            this.setVolume = function (t) {
                this.callInternal("jwSetVolume", t);
                return this
            };
            this.onBufferChange = function (t) {
                return this.eventListener(b.api.events.JWPLAYER_MEDIA_BUFFER, t)
            };
            this.onBufferFull = function (t) {
                return this.eventListener(b.api.events.JWPLAYER_MEDIA_BUFFER_FULL, t)
            };
            this.onError = function (t) {
                return this.eventListener(b.api.events.JWPLAYER_ERROR, t)
            };
            this.onFullscreen = function (t) {
                return this.eventListener(b.api.events.JWPLAYER_FULLSCREEN, t)
            };
            this.onMeta = function (t) {
                return this.eventListener(b.api.events.JWPLAYER_MEDIA_META, t)
            };
            this.onMute = function (t) {
                return this.eventListener(b.api.events.JWPLAYER_MEDIA_MUTE, t)
            };
            this.onPlaylist = function (t) {
                return this.eventListener(b.api.events.JWPLAYER_PLAYLIST_LOADED, t)
            };
            this.onPlaylistItem = function (t) {
                return this.eventListener(b.api.events.JWPLAYER_PLAYLIST_ITEM, t)
            };
            this.onReady = function (t) {
                return this.eventListener(b.api.events.API_READY, t)
            };
            this.onResize = function (t) {
                return this.eventListener(b.api.events.JWPLAYER_RESIZE, t)
            };
            this.onComplete = function (t) {
                return this.eventListener(b.api.events.JWPLAYER_MEDIA_COMPLETE, t)
            };
            this.onSeek = function (t) {
                return this.eventListener(b.api.events.JWPLAYER_MEDIA_SEEK, t)
            };
            this.onTime = function (t) {
                return this.eventListener(b.api.events.JWPLAYER_MEDIA_TIME, t)
            };
            this.onVolume = function (t) {
                return this.eventListener(b.api.events.JWPLAYER_MEDIA_VOLUME, t)
            };
            this.onBuffer = function (t) {
                return this.stateListener(b.api.events.state.BUFFERING, t)
            };
            this.onPause = function (t) {
                return this.stateListener(b.api.events.state.PAUSED, t)
            };
            this.onPlay = function (t) {
                return this.stateListener(b.api.events.state.PLAYING, t)
            };
            this.onIdle = function (t) {
                return this.stateListener(b.api.events.state.IDLE, t)
            };
            this.remove = function () {
                n = {};
                j = [];
                if (b.utils.getOuterHTML(this.container) != p) {
                    b.api.destroyPlayer(this.id, p)
                }
            };
            this.setup = function (u) {
                if (b.embed) {
                    var t = this.id;
                    this.remove();
                    var v = b(t);
                    v.config = u;
                    return new b.embed(v)
                }
                return this
            };
            this.registerPlugin = function (v, u, t) {
                b.plugins.registerPlugin(v, u, t)
            };
            this.setPlayer = function (t, u) {
                h = t;
                this.renderingMode = u
            };
            this.stateListener = function (t, u) {
                if (!s[t]) {
                    s[t] = [];
                    this.eventListener(b.api.events.JWPLAYER_PLAYER_STATE, g(t))
                }
                s[t].push(u);
                return this
            };

            function g(t) {
                return function (v) {
                    var u = v.newstate,
                        x = v.oldstate;
                    if (u == t) {
                        var w = s[u];
                        if (w) {
                            for (var y = 0; y < w.length; y++) {
                                if (typeof w[y] == "function") {
                                    w[y].call(this, {
                                        oldstate: x,
                                        newstate: u
                                    })
                                }
                            }
                        }
                    }
                }
            }
            this.componentListener = function (t, u, v) {
                if (!q[t]) {
                    q[t] = {}
                }
                if (!q[t][u]) {
                    q[t][u] = [];
                    this.eventListener(u, m(t, u))
                }
                q[t][u].push(v);
                return this
            };

            function m(t, u) {
                return function (w) {
                    if (t == w.component) {
                        var v = q[t][u];
                        if (v) {
                            for (var x = 0; x < v.length; x++) {
                                if (typeof v[x] == "function") {
                                    v[x].call(this, w)
                                }
                            }
                        }
                    }
                }
            }
            this.addInternalListener = function (t, u) {
                t.jwAddEventListener(u, 'function(dat) { jwplayer("' + this.id + '").dispatchEvent("' + u + '", dat); }')
            };
            this.eventListener = function (t, u) {
                if (!n[t]) {
                    n[t] = [];
                    if (h && l) {
                        this.addInternalListener(h, t)
                    }
                }
                n[t].push(u);
                return this
            };
            this.dispatchEvent = function (v) {
                if (n[v]) {
                    var u = f(v, arguments[1]);
                    for (var t = 0; t < n[v].length; t++) {
                        if (typeof n[v][t] == "function") {
                            n[v][t].call(this, u)
                        }
                    }
                }
            };

            function f(v, t) {
                var x = b.utils.extend({}, t);
                if (v == b.api.events.JWPLAYER_FULLSCREEN && !x.fullscreen) {
                    x.fullscreen = x.message == "true" ? true : false;
                    delete x.message
                } else {
                    if (typeof x.data == "object") {
                        x = b.utils.extend(x, x.data);
                        delete x.data
                    }
                }
                var u = ["position", "duration", "offset"];
                for (var w in u) {
                    if (x[u[w]]) {
                        x[u[w]] = Math.round(x[u[w]] * 1000) / 1000
                    }
                }
                return x
            }
            this.callInternal = function (u, t) {
                if (l) {
                    if (typeof h != "undefined" && typeof h[u] == "function") {
                        if (b.utils.exists(t)) {
                            return (h[u])(t)
                        } else {
                            return (h[u])()
                        }
                    }
                    return null
                } else {
                    j.push({
                        method: u,
                        parameters: t
                    })
                }
            };
            this.playerReady = function (v) {
                l = true;
                if (!h) {
                    this.setPlayer(document.getElementById(v.id))
                }
                this.container = document.getElementById(this.id);
                for (var t in n) {
                    this.addInternalListener(h, t)
                }
                this.eventListener(b.api.events.JWPLAYER_PLAYLIST_ITEM, function (w) {
                    r = {}
                });
                this.eventListener(b.api.events.JWPLAYER_MEDIA_META, function (w) {
                    b.utils.extend(r, w.metadata)
                });
                this.dispatchEvent(b.api.events.API_READY);
                while (j.length > 0) {
                    var u = j.shift();
                    this.callInternal(u.method, u.parameters)
                }
            };
            this.getItemMeta = function () {
                return r
            };
            this.getCurrentItem = function () {
                return this.callInternal("jwGetPlaylistIndex")
            };

            function o(v, x, w) {
                var t = [];
                if (!x) {
                    x = 0
                }
                if (!w) {
                    w = v.length - 1
                }
                for (var u = x; u <= w; u++) {
                    t.push(v[u])
                }
                return t
            }
            return this
        };
        b.api.selectPlayer = function (d) {
            var c;
            if (!b.utils.exists(d)) {
                d = 0
            }
            if (d.nodeType) {
                c = d
            } else {
                if (typeof d == "string") {
                    c = document.getElementById(d)
                }
            }
            if (c) {
                var e = b.api.playerById(c.id);
                if (e) {
                    return e
                } else {
                    return b.api.addPlayer(new b.api(c))
                }
            } else {
                if (typeof d == "number") {
                    return b.getPlayers()[d]
                }
            }
            return null
        };
        b.api.events = {
            API_READY: "jwplayerAPIReady",
            JWPLAYER_READY: "jwplayerReady",
            JWPLAYER_FULLSCREEN: "jwplayerFullscreen",
            JWPLAYER_RESIZE: "jwplayerResize",
            JWPLAYER_ERROR: "jwplayerError",
            JWPLAYER_COMPONENT_SHOW: "jwplayerComponentShow",
            JWPLAYER_COMPONENT_HIDE: "jwplayerComponentHide",
            JWPLAYER_MEDIA_BUFFER: "jwplayerMediaBuffer",
            JWPLAYER_MEDIA_BUFFER_FULL: "jwplayerMediaBufferFull",
            JWPLAYER_MEDIA_ERROR: "jwplayerMediaError",
            JWPLAYER_MEDIA_LOADED: "jwplayerMediaLoaded",
            JWPLAYER_MEDIA_COMPLETE: "jwplayerMediaComplete",
            JWPLAYER_MEDIA_SEEK: "jwplayerMediaSeek",
            JWPLAYER_MEDIA_TIME: "jwplayerMediaTime",
            JWPLAYER_MEDIA_VOLUME: "jwplayerMediaVolume",
            JWPLAYER_MEDIA_META: "jwplayerMediaMeta",
            JWPLAYER_MEDIA_MUTE: "jwplayerMediaMute",
            JWPLAYER_PLAYER_STATE: "jwplayerPlayerState",
            JWPLAYER_PLAYLIST_LOADED: "jwplayerPlaylistLoaded",
            JWPLAYER_PLAYLIST_ITEM: "jwplayerPlaylistItem"
        };
        b.api.events.state = {
            BUFFERING: "BUFFERING",
            IDLE: "IDLE",
            PAUSED: "PAUSED",
            PLAYING: "PLAYING"
        };
        b.api.playerById = function (d) {
            for (var c = 0; c < a.length; c++) {
                if (a[c].id == d) {
                    return a[c]
                }
            }
            return null
        };
        b.api.addPlayer = function (c) {
            for (var d = 0; d < a.length; d++) {
                if (a[d] == c) {
                    return c
                }
            }
            a.push(c);
            return c
        };
        b.api.destroyPlayer = function (g, d) {
            var f = -1;
            for (var j = 0; j < a.length; j++) {
                if (a[j].id == g) {
                    f = j;
                    continue
                }
            }
            if (f >= 0) {
                var c = document.getElementById(a[f].id);
                if (document.getElementById(a[f].id + "_wrapper")) {
                    c = document.getElementById(a[f].id + "_wrapper")
                }
                if (c) {
                    if (d) {
                        b.utils.setOuterHTML(c, d)
                    } else {
                        var h = document.createElement("div");
                        var e = c.id;
                        if (c.id.indexOf("_wrapper") == c.id.length - 8) {
                            newID = c.id.substring(0, c.id.length - 8)
                        }
                        h.setAttribute("id", e);
                        c.parentNode.replaceChild(h, c)
                    }
                }
                a.splice(f, 1)
            }
            return null
        };
        b.getPlayers = function () {
            return a.slice(0)
        }
    })(jwplayer);
    var _userPlayerReady = (typeof playerReady == "function") ? playerReady : undefined;
    playerReady = function (b) {
        var a = jwplayer.api.playerById(b.id);
        if (a) {
            a.playerReady(b)
        } else {
            jwplayer.api.selectPlayer(b.id).playerReady(b)
        }
        if (_userPlayerReady) {
            _userPlayerReady.call(this, b)
        }
    };
    (function (a) {
        a.embed = function (g) {
            var j = {
                width: 400,
                height: 300,
                components: {
                    controlbar: {
                        position: "over"
                    }
                }
            };
            var f = a.utils.mediaparser.parseMedia(g.container);
            var e = new a.embed.config(a.utils.extend(j, f, g.config), this);
            var h = a.plugins.loadPlugins(g.id, e.plugins);

            function c(m, l) {
                for (var k in l) {
                    if (typeof m[k] == "function") {
                        (m[k]).call(m, l[k])
                    }
                }
            }
            function d() {
                if (h.getStatus() == a.utils.loaderstatus.COMPLETE) {
                    for (var m = 0; m < e.modes.length; m++) {
                        if (e.modes[m].type && a.embed[e.modes[m].type]) {
                            var k = e;
                            if (e.modes[m].config) {
                                k = a.utils.extend(a.utils.clone(e), e.modes[m].config)
                            }
                            var l = new a.embed[e.modes[m].type](document.getElementById(g.id), e.modes[m], k, h, g);
                            if (l.supportsConfig()) {
                                l.embed();
                                c(g, e.events);
                                return g
                            }
                        }
                    }
                    a.utils.log("No suitable players found");
                    new a.embed.logo(a.utils.extend({
                        hide: true
                    }, e.components.logo), "none", g.id)
                }
            }
            h.addEventListener(a.events.COMPLETE, d);
            h.addEventListener(a.events.ERROR, d);
            h.load();
            return g
        };

        function b() {
            if (!document.body) {
                return setTimeout(b, 15)
            }
            var c = a.utils.selectors.getElementsByTagAndClass("video", "jwplayer");
            for (var d = 0; d < c.length; d++) {
                var e = c[d];
                a(e.id).setup({})
            }
        }
        b()
    })(jwplayer);
    (function (e) {
        function h() {
            return [{
                type: "flash",
                src: "/jwplayer/player.swf"
            }, {
                type: "html5"
            }, {
                type: "download"
            }]
        }
        var a = {
            players: "modes",
            autoplay: "autostart"
        };

        function b(n) {
            var m = n.toLowerCase();
            var l = ["left", "right", "top", "bottom"];
            for (var k = 0; k < l.length; k++) {
                if (m == l[k]) {
                    return true
                }
            }
            return false
        }
        function c(l) {
            var k = false;
            k = (l instanceof Array) || (typeof l == "object" && !l.position && !l.size);
            return k
        }
        function j(k) {
            if (typeof k == "string") {
                if (parseInt(k).toString() == k || k.toLowerCase().indexOf("px") > -1) {
                    return parseInt(k)
                }
            }
            return k
        }
        var g = ["playlist", "dock", "controlbar", "logo", "display"];

        function f(k) {
            var n = {};
            switch (e.utils.typeOf(k.plugins)) {
                case "object":
                    for (var m in k.plugins) {
                        n[e.utils.getPluginName(m)] = m
                    }
                    break;
                case "string":
                    var o = k.plugins.split(",");
                    for (var l = 0; l < o.length; l++) {
                        n[e.utils.getPluginName(o[l])] = o[l]
                    }
                    break
            }
            return n
        }
        function d(o, n, m, k) {
            if (e.utils.typeOf(o[n]) != "object") {
                o[n] = {}
            }
            var l = o[n][m];
            if (e.utils.typeOf(l) != "object") {
                o[n][m] = l = {}
            }
            if (k) {
                if (n == "plugins") {
                    var p = e.utils.getPluginName(m);
                    l[k] = o[p + "." + k];
                    delete o[p + "." + k]
                } else {
                    l[k] = o[m + "." + k];
                    delete o[m + "." + k]
                }
            }
        }
        e.embed.deserialize = function (l) {
            var m = f(l);
            for (var k in m) {
                d(l, "plugins", m[k])
            }
            for (var p in l) {
                if (p.indexOf(".") > -1) {
                    var o = p.split(".");
                    var n = o[0];
                    var p = o[1];
                    if (e.utils.isInArray(g, n)) {
                        d(l, "components", n, p)
                    } else {
                        if (m[n]) {
                            d(l, "plugins", m[n], p)
                        }
                    }
                }
            }
            return l
        };
        e.embed.config = function (k, u) {
            var t = e.utils.extend({}, k);
            var r;
            if (c(t.playlist)) {
                r = t.playlist;
                delete t.playlist
            }
            t = e.embed.deserialize(t);
            t.height = j(t.height);
            t.width = j(t.width);
            if (typeof t.plugins == "string") {
                var l = t.plugins.split(",");
                if (typeof t.plugins != "object") {
                    t.plugins = {}
                }
                for (var p = 0; p < l.length; p++) {
                    var q = e.utils.getPluginName(l[p]);
                    if (typeof t[q] == "object") {
                        t.plugins[l[p]] = t[q];
                        delete t[q]
                    } else {
                        t.plugins[l[p]] = {}
                    }
                }
            }
            for (var s = 0; s < g.length; s++) {
                var o = g[s];
                if (e.utils.exists(t[o])) {
                    if (typeof t[o] != "object") {
                        if (!t.components[o]) {
                            t.components[o] = {}
                        }
                        if (o == "logo") {
                            t.components[o].file = t[o]
                        } else {
                            t.components[o].position = t[o]
                        }
                        delete t[o]
                    } else {
                        if (!t.components[o]) {
                            t.components[o] = {}
                        }
                        e.utils.extend(t.components[o], t[o]);
                        delete t[o]
                    }
                }
                if (typeof t[o + "size"] != "undefined") {
                    if (!t.components[o]) {
                        t.components[o] = {}
                    }
                    t.components[o].size = t[o + "size"];
                    delete t[o + "size"]
                }
            }
            if (typeof t.icons != "undefined") {
                if (!t.components.display) {
                    t.components.display = {}
                }
                t.components.display.icons = t.icons;
                delete t.icons
            }
            for (var n in a) {
                if (t[n]) {
                    if (!t[a[n]]) {
                        t[a[n]] = t[n]
                    }
                    delete t[n]
                }
            }
            var m;
            if (t.flashplayer && !t.modes) {
                m = h();
                m[0].src = t.flashplayer;
                delete t.flashplayer
            } else {
                if (t.modes) {
                    if (typeof t.modes == "string") {
                        m = h();
                        m[0].src = t.modes
                    } else {
                        if (t.modes instanceof Array) {
                            m = t.modes
                        } else {
                            if (typeof t.modes == "object" && t.modes.type) {
                                m = [t.modes]
                            }
                        }
                    }
                    delete t.modes
                } else {
                    m = h()
                }
            }
            t.modes = m;
            if (r) {
                t.playlist = r
            }
            return t
        }
    })(jwplayer);
    (function (a) {
        a.embed.download = function (c, g, b, d, f) {
            this.embed = function () {
                var k = a.utils.extend({}, b);
                var q = {};
                var j = b.width ? b.width : 480;
                if (typeof j != "number") {
                    j = parseInt(j, 10)
                }
                var m = b.height ? b.height : 320;
                if (typeof m != "number") {
                    m = parseInt(m, 10)
                }
                var u, o, n;
                var s = {};
                if (b.playlist && b.playlist.length) {
                    s.file = b.playlist[0].file;
                    o = b.playlist[0].image;
                    s.levels = b.playlist[0].levels
                } else {
                    s.file = b.file;
                    o = b.image;
                    s.levels = b.levels
                }
                if (s.file) {
                    u = s.file
                } else {
                    if (s.levels && s.levels.length) {
                        u = s.levels[0].file
                    }
                }
                n = u ? "pointer" : "auto";
                var l = {
                    display: {
                        style: {
                            cursor: n,
                            width: j,
                            height: m,
                            backgroundColor: "#000",
                            position: "relative",
                            textDecoration: "none",
                            border: "none",
                            display: "block"
                        }
                    },
                    display_icon: {
                        style: {
                            cursor: n,
                            position: "absolute",
                            display: u ? "block" : "none",
                            top: 0,
                            left: 0,
                            border: 0,
                            margin: 0,
                            padding: 0,
                            zIndex: 3,
                            width: 50,
                            height: 50,
                            backgroundImage: "url()"
                        }
                    },
                    display_iconBackground: {
                        style: {
                            cursor: n,
                            position: "absolute",
                            display: u ? "block" : "none",
                            top: ((m - 50) / 2),
                            left: ((j - 50) / 2),
                            border: 0,
                            width: 50,
                            height: 50,
                            margin: 0,
                            padding: 0,
                            zIndex: 2,
                            backgroundImage: "url()"
                        }
                    },
                    display_image: {
                        style: {
                            width: j,
                            height: m,
                            display: o ? "block" : "none",
                            position: "absolute",
                            cursor: n,
                            left: 0,
                            top: 0,
                            margin: 0,
                            padding: 0,
                            textDecoration: "none",
                            zIndex: 1,
                            border: "none"
                        }
                    }
                };
                var h = function (v, x, y) {
                    var w = document.createElement(v);
                    if (y) {
                        w.id = y
                    } else {
                        w.id = c.id + "_jwplayer_" + x
                    }
                    a.utils.css(w, l[x].style);
                    return w
                };
                q.display = h("a", "display", c.id);
                if (u) {
                    q.display.setAttribute("href", a.utils.getAbsolutePath(u))
                }
                q.display_image = h("img", "display_image");
                q.display_image.setAttribute("alt", "Click to download...");
                if (o) {
                    q.display_image.setAttribute("src", a.utils.getAbsolutePath(o))
                }
                if (true) {
                    q.display_icon = h("div", "display_icon");
                    q.display_iconBackground = h("div", "display_iconBackground");
                    q.display.appendChild(q.display_image);
                    q.display_iconBackground.appendChild(q.display_icon);
                    q.display.appendChild(q.display_iconBackground)
                }
                _css = a.utils.css;
                _hide = function (v) {
                    _css(v, {
                        display: "none"
                    })
                };

                function r(v) {
                    _imageWidth = q.display_image.naturalWidth;
                    _imageHeight = q.display_image.naturalHeight;
                    t()
                }
                function t() {
                    a.utils.stretch(a.utils.stretching.UNIFORM, q.display_image, j, m, _imageWidth, _imageHeight)
                }
                q.display_image.onerror = function (v) {
                    _hide(q.display_image)
                };
                q.display_image.onload = r;
                c.parentNode.replaceChild(q.display, c);
                var p = (b.plugins && b.plugins.logo) ? b.plugins.logo : {};
                q.display.appendChild(new a.embed.logo(b.components.logo, "download", c.id));
                f.container = document.getElementById(f.id);
                f.setPlayer(q.display, "download")
            };
            this.supportsConfig = function () {
                if (b) {
                    var j = a.utils.getFirstPlaylistItemFromConfig(b);
                    if (typeof j.file == "undefined" && typeof j.levels == "undefined") {
                        return true
                    } else {
                        if (j.file) {
                            return e(j.file, j.provider, j.playlistfile)
                        } else {
                            if (j.levels && j.levels.length) {
                                for (var h = 0; h < j.levels.length; h++) {
                                    if (j.levels[h].file && e(j.levels[h].file, j.provider, j.playlistfile)) {
                                        return true
                                    }
                                }
                            }
                        }
                    }
                } else {
                    return true
                }
            };

            function e(j, l, h) {
                if (h) {
                    return false
                }
                var k = ["image", "sound", "youtube", "http"];
                if (l && (k.toString().indexOf(l) > -1)) {
                    return true
                }
                if (!l || (l && l == "video")) {
                    var m = a.utils.extension(j);
                    if (m && a.utils.extensionmap[m]) {
                        return true
                    }
                }
                return false
            }
        }
    })(jwplayer);
    (function (a) {
        a.embed.flash = function (f, g, l, e, j) {
            function m(o, n, p) {
                var q = document.createElement("param");
                q.setAttribute("name", n);
                q.setAttribute("value", p);
                o.appendChild(q)
            }
            function k(o, p, n) {
                return function (q) {
                    if (n) {
                        document.getElementById(j.id + "_wrapper").appendChild(p)
                    }
                    var s = document.getElementById(j.id).getPluginConfig("display");
                    o.resize(s.width, s.height);
                    var r = {
                        left: s.x,
                        top: s.y
                    };
                    a.utils.css(p, r)
                }
            }
            function d(p) {
                if (!p) {
                    return {}
                }
                var r = {};
                for (var o in p) {
                    var n = p[o];
                    for (var q in n) {
                        r[o + "." + q] = n[q]
                    }
                }
                return r
            }
            function h(q, p) {
                if (q[p]) {
                    var s = q[p];
                    for (var o in s) {
                        var n = s[o];
                        if (typeof n == "string") {
                            if (!q[o]) {
                                q[o] = n
                            }
                        } else {
                            for (var r in n) {
                                if (!q[o + "." + r]) {
                                    q[o + "." + r] = n[r]
                                }
                            }
                        }
                    }
                    delete q[p]
                }
            }
            function b(q) {
                if (!q) {
                    return {}
                }
                var t = {},
                    s = [];
                for (var n in q) {
                    var p = a.utils.getPluginName(n);
                    var o = q[n];
                    s.push(n);
                    for (var r in o) {
                        t[p + "." + r] = o[r]
                    }
                }
                t.plugins = s.join(",");
                return t
            }
            function c(p) {
                var n = p.netstreambasepath ? "" : "netstreambasepath=" + encodeURIComponent(window.location.href.split("#")[0]) + "&";
                for (var o in p) {
                    if (typeof (p[o]) == "object") {
                        n += o + "=" + encodeURIComponent("[[JSON]]" + a.utils.strings.jsonToString(p[o])) + "&"
                    } else {
                        n += o + "=" + encodeURIComponent(p[o]) + "&"
                    }
                }
                return n.substring(0, n.length - 1)
            }
            this.embed = function () {
                l.id = j.id;
                var y;
                var q = a.utils.extend({}, l);
                var n = q.width;
                var w = q.height;
                if (f.id + "_wrapper" == f.parentNode.id) {
                    y = document.getElementById(f.id + "_wrapper")
                } else {
                    y = document.createElement("div");
                    y.id = f.id + "_wrapper";
                    a.utils.wrap(f, y);
                    a.utils.css(y, {
                        position: "relative",
                        width: n,
                        height: w
                    })
                }
                var o = e.setupPlugins(j, q, k);
                if (o.length > 0) {
                    a.utils.extend(q, b(o.plugins))
                } else {
                    delete q.plugins
                }
                var r = ["height", "width", "modes", "events"];
                for (var u = 0; u < r.length; u++) {
                    delete q[r[u]]
                }
                var p = "opaque";
                if (q.wmode) {
                    p = q.wmode
                }
                h(q, "components");
                h(q, "providers");
                if (typeof q["dock.position"] != "undefined") {
                    if (q["dock.position"].toString().toLowerCase() == "false") {
                        q.dock = q["dock.position"];
                        delete q["dock.position"]
                    }
                }
                var x = "#000000";
                var t;
                if (a.utils.isIE()) {
                    var v = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" bgcolor="' + x + '" width="100%" height="100%" id="' + f.id + '" name="' + f.id + '" tabindex=0"">';
                    v += '<param name="movie" value="' + g.src + '">';
                    v += '<param name="allowfullscreen" value="true">';
                    v += '<param name="allowscriptaccess" value="always">';
                    v += '<param name="seamlesstabbing" value="true">';
                    v += '<param name="wmode" value="' + p + '">';
                    v += '<param name="flashvars" value="' + c(q) + '">';
                    v += "</object>";
                    a.utils.setOuterHTML(f, v);
                    t = document.getElementById(f.id)
                } else {
                    var s = document.createElement("object");
                    s.setAttribute("type", "application/x-shockwave-flash");
                    s.setAttribute("data", g.src);
                    s.setAttribute("width", "100%");
                    s.setAttribute("height", "100%");
                    s.setAttribute("bgcolor", "#000000");
                    s.setAttribute("id", f.id);
                    s.setAttribute("name", f.id);
                    s.setAttribute("tabindex", 0);
                    m(s, "allowfullscreen", "true");
                    m(s, "allowscriptaccess", "always");
                    m(s, "seamlesstabbing", "true");
                    m(s, "wmode", p);
                    m(s, "flashvars", c(q));
                    f.parentNode.replaceChild(s, f);
                    t = s
                }
                j.container = t;
                j.setPlayer(t, "flash")
            };
            this.supportsConfig = function () {
                if (a.utils.hasFlash()) {
                    if (l) {
                        var o = a.utils.getFirstPlaylistItemFromConfig(l);
                        if (typeof o.file == "undefined" && typeof o.levels == "undefined") {
                            return true
                        } else {
                            if (o.file) {
                                return flashCanPlay(o.file, o.provider)
                            } else {
                                if (o.levels && o.levels.length) {
                                    for (var n = 0; n < o.levels.length; n++) {
                                        if (o.levels[n].file && flashCanPlay(o.levels[n].file, o.provider)) {
                                            return true
                                        }
                                    }
                                }
                            }
                        }
                    } else {
                        return true
                    }
                }
                return false
            };
            flashCanPlay = function (n, p) {
                var o = ["video", "http", "sound", "image"];
                if (p && (o.toString().indexOf(p < 0))) {
                    return true
                }
                var q = a.utils.extension(n);
                if (!q) {
                    return true
                }
                if (a.utils.exists(a.utils.extensionmap[q]) && !a.utils.exists(a.utils.extensionmap[q].flash)) {
                    return false
                }
                return true
            }
        }
    })(jwplayer);
    (function (a) {
        a.embed.html5 = function (c, g, b, d, f) {
            function e(j, k, h) {
                return function (l) {
                    var m = document.getElementById(c.id + "_displayarea");
                    if (h) {
                        m.appendChild(k)
                    }
                    var n = m.style;
                    j.resize(parseInt(n.width.replace("px", "")), parseInt(n.height.replace("px", "")));
                    k.left = n.left;
                    k.top = n.top
                }
            }
            this.embed = function () {
                if (a.html5) {
                    d.setupPlugins(f, b, e);
                    c.innerHTML = "";
                    var j = a.utils.extend({
                        screencolor: "0x000000"
                    }, b);
                    var h = ["plugins", "modes", "events"];
                    for (var k = 0; k < h.length; k++) {
                        delete j[h[k]]
                    }
                    if (j.levels && !j.sources) {
                        j.sources = b.levels
                    }
                    if (j.skin && j.skin.toLowerCase().indexOf(".zip") > 0) {
                        j.skin = j.skin.replace(/\.zip/i, ".xml")
                    }
                    var l = new (a.html5(c)).setup(j);
                    f.container = document.getElementById(f.id);
                    f.setPlayer(l, "html5")
                } else {
                    return null
                }
            };
            this.supportsConfig = function () {
                if (!!a.vid.canPlayType) {
                    if (b) {
                        var j = a.utils.getFirstPlaylistItemFromConfig(b);
                        if (typeof j.file == "undefined" && typeof j.levels == "undefined") {
                            return true
                        } else {
                            if (j.file) {
                                return html5CanPlay(a.vid, j.file, j.provider, j.playlistfile)
                            } else {
                                if (j.levels && j.levels.length) {
                                    for (var h = 0; h < j.levels.length; h++) {
                                        if (j.levels[h].file && html5CanPlay(a.vid, j.levels[h].file, j.provider, j.playlistfile)) {
                                            return true
                                        }
                                    }
                                }
                            }
                        }
                    } else {
                        return true
                    }
                }
                return false
            };
            html5CanPlay = function (k, j, l, h) {
                if (h) {
                    return false
                }
                if (l && l == "youtube") {
                    return true
                }
                if (l && l != "video" && l != "http" && l != "sound") {
                    return false
                }
                var m = a.utils.extension(j);
                if (!a.utils.exists(m) || !a.utils.exists(a.utils.extensionmap[m])) {
                    return true
                }
                if (!a.utils.exists(a.utils.extensionmap[m].html5)) {
                    return false
                }
                if (a.utils.isLegacyAndroid() && m.match(/m4v|mp4/)) {
                    return true
                }
                return browserCanPlay(k, a.utils.extensionmap[m].html5)
            };
            browserCanPlay = function (j, h) {
                if (!h) {
                    return true
                }
                if (j.canPlayType(h)) {
                    return true
                } else {
                    if (h == "audio/mp3" && navigator.userAgent.match(/safari/i)) {
                        return j.canPlayType("audio/mpeg")
                    } else {
                        return false
                    }
                }
            }
        }
    })(jwplayer);
    (function (a) {
        a.embed.logo = function (m, l, d) {
            var j = {
                prefix: "http://l.longtailvideo.com/" + l + "/",
                file: "",
                link: "",
                margin: 8,
                out: 0.5,
                over: 1,
                timeout: 5,
                hide: false,
                position: "bottom-left"
            };
            _css = a.utils.css;
            var b;
            var h;
            k();

            function k() {
                o();
                c();
                f()
            }
            function o() {
                if (j.prefix) {
                    var q = a.version.split(/\W/).splice(0, 2).join("/");
                    if (j.prefix.indexOf(q) < 0) {
                        j.prefix += q + "/"
                    }
                }
                h = a.utils.extend({}, j, m)
            }
            function p() {
                var s = {
                    border: "none",
                    textDecoration: "none",
                    position: "absolute",
                    cursor: "pointer",
                    zIndex: 10
                };
                s.display = h.hide ? "none" : "block";
                var r = h.position.toLowerCase().split("-");
                for (var q in r) {
                    s[r[q]] = h.margin
                }
                return s
            }
            function c() {
                b = document.createElement("img");
                b.id = d + "_jwplayer_logo";
                b.style.display = "none";
                b.onload = function (q) {
                    _css(b, p());
                    e()
                };
                if (!h.file) {
                    return
                }
                if (h.file.indexOf("http://") === 0) {
                    b.src = h.file
                } else {
                    b.src = h.prefix + h.file
                }
            }
            if (!h.file) {
                return
            }
            function f() {
                if (h.link) {
                    b.onmouseover = g;
                    b.onmouseout = e;
                    b.onclick = n
                } else {
                    this.mouseEnabled = false
                }
            }
            function n(q) {
                if (typeof q != "undefined") {
                    q.preventDefault();
                    q.stopPropagation()
                }
                if (h.link) {
                    window.open(h.link, "_blank")
                }
                return
            }
            function e(q) {
                if (h.link) {
                    b.style.opacity = h.out
                }
                return
            }
            function g(q) {
                if (h.hide) {
                    b.style.opacity = h.over
                }
                return
            }
            return b
        }
    })(jwplayer);
    (function (a) {
        a.html5 = function (b) {
            var c = b;
            this.setup = function (d) {
                a.utils.extend(this, new a.html5.api(c, d));
                return this
            };
            return this
        }
    })(jwplayer);
    (function (b) {
        var d = b.utils;
        var c = d.css;
        b.html5.view = function (r, q, f) {
            var u = r;
            var n = q;
            var x = f;
            var w;
            var g;
            var C;
            var s;
            var D;
            var p;
            var A;

            function z() {
                w = document.createElement("div");
                w.id = n.id;
                w.className = n.className;
                _videowrapper = document.createElement("div");
                _videowrapper.id = w.id + "_video_wrapper";
                n.id = w.id + "_video";
                c(w, {
                    position: "relative",
                    height: x.height,
                    width: x.width,
                    padding: 0,
                    backgroundColor: E(),
                    zIndex: 0
                });

                function E() {
                    if (u.skin.getComponentSettings("display") && u.skin.getComponentSettings("display").backgroundcolor) {
                        return u.skin.getComponentSettings("display").backgroundcolor
                    }
                    return parseInt("000000", 16)
                }
                c(n, {
                    width: x.width,
                    height: x.height,
                    top: 0,
                    left: 0,
                    zIndex: 1,
                    margin: "auto",
                    display: "block"
                });
                c(_videowrapper, {
                    overflow: "hidden",
                    position: "absolute",
                    top: 0,
                    left: 0,
                    bottom: 0,
                    right: 0
                });
                d.wrap(n, w);
                d.wrap(n, _videowrapper);
                s = document.createElement("div");
                s.id = w.id + "_displayarea";
                w.appendChild(s)
            }
            function k() {
                for (var E = 0; E < x.plugins.order.length; E++) {
                    var F = x.plugins.order[E];
                    if (d.exists(x.plugins.object[F].getDisplayElement)) {
                        x.plugins.object[F].height = d.parseDimension(x.plugins.object[F].getDisplayElement().style.height);
                        x.plugins.object[F].width = d.parseDimension(x.plugins.object[F].getDisplayElement().style.width);
                        x.plugins.config[F].currentPosition = x.plugins.config[F].position
                    }
                }
                v()
            }
            function m(E) {
                c(s, {
                    display: x.getMedia().hasChrome() ? "none" : "block"
                })
            }
            function v(F) {
                var H = x.getMedia() ? x.getMedia().getDisplayElement() : null;
                if (d.exists(H)) {
                    if (A != H) {
                        if (A && A.parentNode) {
                            A.parentNode.replaceChild(H, A)
                        }
                        A = H
                    }
                    for (var E = 0; E < x.plugins.order.length; E++) {
                        var G = x.plugins.order[E];
                        if (d.exists(x.plugins.object[G].getDisplayElement)) {
                            x.plugins.config[G].currentPosition = x.plugins.config[G].position
                        }
                    }
                }
                j(x.width, x.height)
            }
            this.setup = function () {
                if (x && x.getMedia()) {
                    n = x.getMedia().getDisplayElement()
                }
                z();
                k();
                u.jwAddEventListener(b.api.events.JWPLAYER_PLAYER_STATE, m);
                u.jwAddEventListener(b.api.events.JWPLAYER_MEDIA_LOADED, v);
                u.jwAddEventListener(b.api.events.JWPLAYER_MEDIA_META, function () {
                    y()
                });
                var E;
                if (d.exists(window.onresize)) {
                    E = window.onresize
                }
                window.onresize = function (F) {
                    if (d.exists(E)) {
                        try {
                            E(F)
                        } catch (H) { }
                    }
                    if (u.jwGetFullscreen()) {
                        var G = document.body.getBoundingClientRect();
                        x.width = Math.abs(G.left) + Math.abs(G.right);
                        x.height = window.innerHeight
                    }
                    j(x.width, x.height)
                }
            };

            function h(E) {
                switch (E.keyCode) {
                    case 27:
                        if (u.jwGetFullscreen()) {
                            u.jwSetFullscreen(false)
                        }
                        break;
                    case 32:
                        if (u.jwGetState() != b.api.events.state.IDLE && u.jwGetState() != b.api.events.state.PAUSED) {
                            u.jwPause()
                        } else {
                            u.jwPlay()
                        }
                        break
                }
            }
            function j(H, E) {
                if (w.style.display == "none") {
                    return
                }
                var G = [].concat(x.plugins.order);
                G.reverse();
                D = G.length + 2;
                if (!x.fullscreen) {
                    x.width = H;
                    x.height = E;
                    g = H;
                    C = E;
                    c(s, {
                        top: 0,
                        bottom: 0,
                        left: 0,
                        right: 0,
                        width: H,
                        height: E,
                        position: "relative"
                    });
                    c(w, {
                        height: C,
                        width: g
                    });
                    var F = o(t, G);
                    if (F.length > 0) {
                        D += F.length;
                        var J = F.indexOf("playlist"),
                            I = F.indexOf("controlbar");
                        if (J >= 0 && I >= 0) {
                            F[J] = F.splice(I, 1, F[J])[0]
                        }
                        o(l, F, true)
                    }
                } else {
                    if (!(navigator && navigator.vendor && navigator.vendor.indexOf("Apple") == 0)) {
                        o(B, G, true)
                    }
                }
                y()
            }
            function o(J, G, H) {
                var F = [];
                for (var E = 0; E < G.length; E++) {
                    var K = G[E];
                    if (d.exists(x.plugins.object[K].getDisplayElement)) {
                        if (x.plugins.config[K].currentPosition != b.html5.view.positions.NONE) {
                            var I = J(K, D--);
                            if (!I) {
                                F.push(K)
                            } else {
                                x.plugins.object[K].resize(I.width, I.height);
                                if (H) {
                                    delete I.width;
                                    delete I.height
                                }
                                c(x.plugins.object[K].getDisplayElement(), I)
                            }
                        } else {
                            c(x.plugins.object[K].getDisplayElement(), {
                                display: "none"
                            })
                        }
                    }
                }
                return F
            }
            function t(F, G) {
                if (d.exists(x.plugins.object[F].getDisplayElement)) {
                    if (x.plugins.config[F].position && a(x.plugins.config[F].position)) {
                        if (!d.exists(x.plugins.object[F].getDisplayElement().parentNode)) {
                            w.appendChild(x.plugins.object[F].getDisplayElement())
                        }
                        var E = e(F);
                        E.zIndex = G;
                        return E
                    }
                }
                return false
            }
            function l(G, H) {
                if (!d.exists(x.plugins.object[G].getDisplayElement().parentNode)) {
                    s.appendChild(x.plugins.object[G].getDisplayElement())
                }
                var E = x.width,
                    F = x.height;
                if (typeof x.width == "string" && x.width.lastIndexOf("%") > -1) {
                    percentage = parseFloat(x.width.substring(0, x.width.lastIndexOf("%"))) / 100;
                    E = Math.round(window.innerWidth * percentage)
                }
                if (typeof x.height == "string" && x.height.lastIndexOf("%") > -1) {
                    percentage = parseFloat(x.height.substring(0, x.height.lastIndexOf("%"))) / 100;
                    F = Math.round(window.innerHeight * percentage)
                }
                return {
                    position: "absolute",
                    width: (E - d.parseDimension(s.style.left) - d.parseDimension(s.style.right)),
                    height: (F - d.parseDimension(s.style.top) - d.parseDimension(s.style.bottom)),
                    zIndex: H
                }
            }
            function B(E, F) {
                return {
                    position: "fixed",
                    width: x.width,
                    height: x.height,
                    zIndex: F
                }
            }
            function y() {
                if (!d.exists(x.getMedia())) {
                    return
                }
                s.style.position = "absolute";
                var H = x.getMedia().getDisplayElement();
                if (H && H.tagName.toLowerCase() == "video") {
                    H.style.position = "absolute";
                    var E, I;
                    if (s.style.width.toString().lastIndexOf("%") > -1 || s.style.width.toString().lastIndexOf("%") > -1) {
                        var F = s.getBoundingClientRect();
                        E = Math.abs(F.left) + Math.abs(F.right);
                        I = Math.abs(F.top) + Math.abs(F.bottom)
                    } else {
                        E = d.parseDimension(s.style.width);
                        I = d.parseDimension(s.style.height)
                    }
                    if (H.parentNode) {
                        H.parentNode.style.left = s.style.left;
                        H.parentNode.style.top = s.style.top
                    }
                    d.stretch(u.jwGetStretching(), H, E, I, H.videoWidth ? H.videoWidth : 400, H.videoHeight ? H.videoHeight : 300)
                } else {
                    var G = x.plugins.object.display.getDisplayElement();
                    if (G) {
                        x.getMedia().resize(d.parseDimension(G.style.width), d.parseDimension(G.style.height))
                    } else {
                        x.getMedia().resize(d.parseDimension(s.style.width), d.parseDimension(s.style.height))
                    }
                }
            }
            function e(F) {
                var G = {
                    position: "absolute",
                    margin: 0,
                    padding: 0,
                    top: null
                };
                var E = x.plugins.config[F].currentPosition.toLowerCase();
                switch (E.toUpperCase()) {
                    case b.html5.view.positions.TOP:
                        G.top = d.parseDimension(s.style.top);
                        G.left = d.parseDimension(s.style.left);
                        G.width = g - d.parseDimension(s.style.left) - d.parseDimension(s.style.right);
                        G.height = x.plugins.object[F].height;
                        s.style[E] = d.parseDimension(s.style[E]) + x.plugins.object[F].height + "px";
                        s.style.height = d.parseDimension(s.style.height) - G.height + "px";
                        break;
                    case b.html5.view.positions.RIGHT:
                        G.top = d.parseDimension(s.style.top);
                        G.right = d.parseDimension(s.style.right);
                        G.width = x.plugins.object[F].width;
                        G.height = C - d.parseDimension(s.style.top) - d.parseDimension(s.style.bottom);
                        s.style[E] = d.parseDimension(s.style[E]) + x.plugins.object[F].width + "px";
                        s.style.width = d.parseDimension(s.style.width) - G.width + "px";
                        break;
                    case b.html5.view.positions.BOTTOM:
                        G.bottom = d.parseDimension(s.style.bottom);
                        G.left = d.parseDimension(s.style.left);
                        G.width = g - d.parseDimension(s.style.left) - d.parseDimension(s.style.right);
                        G.height = x.plugins.object[F].height;
                        s.style[E] = d.parseDimension(s.style[E]) + x.plugins.object[F].height + "px";
                        s.style.height = d.parseDimension(s.style.height) - G.height + "px";
                        break;
                    case b.html5.view.positions.LEFT:
                        G.top = d.parseDimension(s.style.top);
                        G.left = d.parseDimension(s.style.left);
                        G.width = x.plugins.object[F].width;
                        G.height = C - d.parseDimension(s.style.top) - d.parseDimension(s.style.bottom);
                        s.style[E] = d.parseDimension(s.style[E]) + x.plugins.object[F].width + "px";
                        s.style.width = d.parseDimension(s.style.width) - G.width + "px";
                        break;
                    default:
                        break
                }
                return G
            }
            this.resize = j;
            this.fullscreen = function (H) {
                if (navigator && navigator.vendor && navigator.vendor.indexOf("Apple") === 0) {
                    if (x.getMedia().getDisplayElement().webkitSupportsFullscreen) {
                        if (H) {
                            try {
                                x.getMedia().getDisplayElement().webkitEnterFullscreen()
                            } catch (G) { }
                        } else {
                            try {
                                x.getMedia().getDisplayElement().webkitExitFullscreen()
                            } catch (G) { }
                        }
                    }
                } else {
                    if (H) {
                        document.onkeydown = h;
                        clearInterval(p);
                        var F = document.body.getBoundingClientRect();
                        x.width = Math.abs(F.left) + Math.abs(F.right);
                        x.height = window.innerHeight;
                        var E = {
                            position: "fixed",
                            width: "100%",
                            height: "100%",
                            top: 0,
                            left: 0,
                            zIndex: 2147483000
                        };
                        c(w, E);
                        E.zIndex = 1;
                        if (x.getMedia() && x.getMedia().getDisplayElement()) {
                            c(x.getMedia().getDisplayElement(), E)
                        }
                        E.zIndex = 2;
                        c(s, E)
                    } else {
                        document.onkeydown = "";
                        x.width = g;
                        x.height = C;
                        c(w, {
                            position: "relative",
                            height: x.height,
                            width: x.width,
                            zIndex: 0
                        })
                    }
                    j(x.width, x.height)
                }
            }
        };

        function a(e) {
            return ([b.html5.view.positions.TOP, b.html5.view.positions.RIGHT, b.html5.view.positions.BOTTOM, b.html5.view.positions.LEFT].toString().indexOf(e.toUpperCase()) > -1)
        }
        b.html5.view.positions = {
            TOP: "TOP",
            RIGHT: "RIGHT",
            BOTTOM: "BOTTOM",
            LEFT: "LEFT",
            OVER: "OVER",
            NONE: "NONE"
        }
    })(jwplayer);
    (function (a) {
        var b = {
            backgroundcolor: "",
            margin: 10,
            font: "Arial,sans-serif",
            fontsize: 10,
            fontcolor: parseInt("000000", 16),
            fontstyle: "normal",
            fontweight: "bold",
            buttoncolor: parseInt("ffffff", 16),
            position: a.html5.view.positions.BOTTOM,
            idlehide: false,
            layout: {
                left: {
                    position: "left",
                    elements: [{
                        name: "play",
                        type: "button"
                    }, {
                        name: "divider",
                        type: "divider"
                    }, {
                        name: "prev",
                        type: "button"
                    }, {
                        name: "divider",
                        type: "divider"
                    }, {
                        name: "next",
                        type: "button"
                    }, {
                        name: "divider",
                        type: "divider"
                    }, {
                        name: "elapsed",
                        type: "text"
                    }]
                },
                center: {
                    position: "center",
                    elements: [{
                        name: "time",
                        type: "slider"
                    }]
                },
                right: {
                    position: "right",
                    elements: [{
                        name: "duration",
                        type: "text"
                    }, {
                        name: "blank",
                        type: "button"
                    }, {
                        name: "divider",
                        type: "divider"
                    }, {
                        name: "mute",
                        type: "button"
                    }, {
                        name: "volume",
                        type: "slider"
                    }, {
                        name: "divider",
                        type: "divider"
                    }, {
                        name: "fullscreen",
                        type: "button"
                    }]
                }
            }
        };
        _utils = a.utils;
        _css = _utils.css;
        _hide = function (c) {
            _css(c, {
                display: "none"
            })
        };
        _show = function (c) {
            _css(c, {
                display: "block"
            })
        };
        a.html5.controlbar = function (l, V) {
            var k = l;
            var D = _utils.extend({}, b, k.skin.getComponentSettings("controlbar"), V);
            if (D.position == a.html5.view.positions.NONE || typeof a.html5.view.positions[D.position] == "undefined") {
                return
            }
            if (_utils.mapLength(k.skin.getComponentLayout("controlbar")) > 0) {
                D.layout = k.skin.getComponentLayout("controlbar")
            }
            var ac;
            var P;
            var ab;
            var E;
            var v = "none";
            var g;
            var j;
            var ad;
            var f;
            var e;
            var y;
            var Q = {};
            var p = false;
            var c = {};
            var Y;
            var h = false;
            var o;
            var d;
            var S = false;
            var G = false;
            var W = new a.html5.eventdispatcher();
            _utils.extend(this, W);

            function J() {
                if (!Y) {
                    Y = k.skin.getSkinElement("controlbar", "background");
                    if (!Y) {
                        Y = {
                            width: 0,
                            height: 0,
                            src: null
                        }
                    }
                }
                return Y
            }
            function N() {
                ab = 0;
                E = 0;
                P = 0;
                if (!p) {
                    var ak = {
                        height: J().height,
                        backgroundColor: D.backgroundcolor
                    };
                    ac = document.createElement("div");
                    ac.id = k.id + "_jwplayer_controlbar";
                    _css(ac, ak)
                }
                var aj = (k.skin.getSkinElement("controlbar", "capLeft"));
                var ai = (k.skin.getSkinElement("controlbar", "capRight"));
                if (aj) {
                    x("capLeft", "left", false, ac)
                }
                var al = {
                    position: "absolute",
                    height: J().height,
                    left: (aj ? aj.width : 0),
                    zIndex: 0
                };
                Z("background", ac, al, "img");
                if (J().src) {
                    Q.background.src = J().src
                }
                al.zIndex = 1;
                Z("elements", ac, al);
                if (ai) {
                    x("capRight", "right", false, ac)
                }
            }
            this.getDisplayElement = function () {
                return ac
            };
            this.resize = function (ak, ai) {
                _utils.cancelAnimation(ac);
                document.getElementById(k.id).onmousemove = A;
                e = ak;
                y = ai;
                if (G != k.jwGetFullscreen()) {
                    G = k.jwGetFullscreen();
                    d = undefined
                }
                var aj = w();
                A();
                I({
                    id: k.id,
                    duration: ad,
                    position: j
                });
                u({
                    id: k.id,
                    bufferPercent: f
                });
                return aj
            };
            this.show = function () {
                if (h) {
                    h = false;
                    _show(ac);
                    T()
                }
            };
            this.hide = function () {
                if (!h) {
                    h = true;
                    _hide(ac);
                    aa()
                }
            };

            function q() {
                var aj = ["timeSlider", "volumeSlider", "timeSliderRail", "volumeSliderRail"];
                for (var ak in aj) {
                    var ai = aj[ak];
                    if (typeof Q[ai] != "undefined") {
                        c[ai] = Q[ai].getBoundingClientRect()
                    }
                }
            }
            function A(ai) {
                if (h) {
                    return
                }
                if (D.position == a.html5.view.positions.OVER || k.jwGetFullscreen()) {
                    clearTimeout(o);
                    switch (k.jwGetState()) {
                        case a.api.events.state.PAUSED:
                        case a.api.events.state.IDLE:
                            if (!D.idlehide || _utils.exists(ai)) {
                                U()
                            }
                            if (D.idlehide) {
                                o = setTimeout(function () {
                                    z()
                                }, 2000)
                            }
                            break;
                        default:
                            if (ai) {
                                U()
                            }
                            o = setTimeout(function () {
                                z()
                            }, 2000);
                            break
                    }
                }
            }
            function z(ai) {
                aa();
                _utils.cancelAnimation(ac);
                _utils.fadeTo(ac, 0, 0.1, 1, 0)
            }
            function U() {
                T();
                _utils.cancelAnimation(ac);
                _utils.fadeTo(ac, 1, 0, 1, 0)
            }
            function H(ai) {
                return function () {
                    if (S && d != ai) {
                        d = ai;
                        W.sendEvent(ai, {
                            component: "controlbar",
                            boundingRect: O()
                        })
                    }
                }
            }
            var T = H(a.api.events.JWPLAYER_COMPONENT_SHOW);
            var aa = H(a.api.events.JWPLAYER_COMPONENT_HIDE);

            function O() {
                if (D.position == a.html5.view.positions.OVER || k.jwGetFullscreen()) {
                    return _utils.getDimensions(ac)
                } else {
                    return {
                        x: 0,
                        y: 0,
                        width: 0,
                        height: 0
                    }
                }
            }
            function Z(am, al, ak, ai) {
                var aj;
                if (!p) {
                    if (!ai) {
                        ai = "div"
                    }
                    aj = document.createElement(ai);
                    Q[am] = aj;
                    aj.id = ac.id + "_" + am;
                    al.appendChild(aj)
                } else {
                    aj = document.getElementById(ac.id + "_" + am)
                }
                if (_utils.exists(ak)) {
                    _css(aj, ak)
                }
                return aj
            }
            function M() {
                ah(D.layout.left);
                ah(D.layout.right, -1);
                ah(D.layout.center)
            }
            function ah(al, ai) {
                var am = al.position == "right" ? "right" : "left";
                var ak = _utils.extend([], al.elements);
                if (_utils.exists(ai)) {
                    ak.reverse()
                }
                for (var aj = 0; aj < ak.length; aj++) {
                    C(ak[aj], am)
                }
            }
            function K() {
                return P++
            }
            function C(am, ao) {
                var al, aj, ak, ai, aq;
                if (am.type == "divider") {
                    x("divider" + K(), ao, true, undefined, undefined, am.width, am.element);
                    return
                }
                switch (am.name) {
                    case "play":
                        x("playButton", ao, false);
                        x("pauseButton", ao, true);
                        R("playButton", "jwPlay");
                        R("pauseButton", "jwPause");
                        break;
                    case "prev":
                        x("prevButton", ao, true);
                        R("prevButton", "jwPlaylistPrev");
                        break;
                    case "stop":
                        x("stopButton", ao, true);
                        R("stopButton", "jwStop");
                        break;
                    case "next":
                        x("nextButton", ao, true);
                        R("nextButton", "jwPlaylistNext");
                        break;
                    case "elapsed":
                        x("elapsedText", ao, true);
                        break;
                    case "time":
                        aj = !_utils.exists(k.skin.getSkinElement("controlbar", "timeSliderCapLeft")) ? 0 : k.skin.getSkinElement("controlbar", "timeSliderCapLeft").width;
                        ak = !_utils.exists(k.skin.getSkinElement("controlbar", "timeSliderCapRight")) ? 0 : k.skin.getSkinElement("controlbar", "timeSliderCapRight").width;
                        al = ao == "left" ? aj : ak;
                        ai = k.skin.getSkinElement("controlbar", "timeSliderRail").width + aj + ak;
                        aq = {
                            height: J().height,
                            position: "absolute",
                            top: 0,
                            width: ai
                        };
                        aq[ao] = ao == "left" ? ab : E;
                        var an = Z("timeSlider", Q.elements, aq);
                        x("timeSliderCapLeft", ao, true, an, ao == "left" ? 0 : al);
                        x("timeSliderRail", ao, false, an, al);
                        x("timeSliderBuffer", ao, false, an, al);
                        x("timeSliderProgress", ao, false, an, al);
                        x("timeSliderThumb", ao, false, an, al);
                        x("timeSliderCapRight", ao, true, an, ao == "right" ? 0 : al);
                        X("time");
                        break;
                    case "fullscreen":
                        x("fullscreenButton", ao, false);
                        x("normalscreenButton", ao, true);
                        R("fullscreenButton", "jwSetFullscreen", true);
                        R("normalscreenButton", "jwSetFullscreen", false);
                        break;
                    case "volume":
                        aj = !_utils.exists(k.skin.getSkinElement("controlbar", "volumeSliderCapLeft")) ? 0 : k.skin.getSkinElement("controlbar", "volumeSliderCapLeft").width;
                        ak = !_utils.exists(k.skin.getSkinElement("controlbar", "volumeSliderCapRight")) ? 0 : k.skin.getSkinElement("controlbar", "volumeSliderCapRight").width;
                        al = ao == "left" ? aj : ak;
                        ai = k.skin.getSkinElement("controlbar", "volumeSliderRail").width + aj + ak;
                        aq = {
                            height: J().height,
                            position: "absolute",
                            top: 0,
                            width: ai
                        };
                        aq[ao] = ao == "left" ? ab : E;
                        var ap = Z("volumeSlider", Q.elements, aq);
                        x("volumeSliderCapLeft", ao, true, ap, ao == "left" ? 0 : al);
                        x("volumeSliderRail", ao, true, ap, al);
                        x("volumeSliderProgress", ao, false, ap, al);
                        x("volumeSliderCapRight", ao, true, ap, ao == "right" ? 0 : al);
                        X("volume");
                        break;
                    case "mute":
                        x("muteButton", ao, false);
                        x("unmuteButton", ao, true);
                        R("muteButton", "jwSetMute", true);
                        R("unmuteButton", "jwSetMute", false);
                        break;
                    case "duration":
                        x("durationText", ao, true);
                        break
                }
            }
            function x(al, ao, aj, ar, am, ai, ak) {
                if (_utils.exists(k.skin.getSkinElement("controlbar", al)) || al.indexOf("Text") > 0 || al.indexOf("divider") === 0) {
                    var an = {
                        height: J().height,
                        position: "absolute",
                        display: "block",
                        top: 0
                    };
                    if ((al.indexOf("next") === 0 || al.indexOf("prev") === 0) && k.jwGetPlaylist().length < 2) {
                        aj = false;
                        an.display = "none"
                    }
                    var at;
                    if (al.indexOf("Text") > 0) {
                        al.innerhtml = "00:00";
                        an.font = D.fontsize + "px/" + (J().height + 1) + "px " + D.font;
                        an.color = D.fontcolor;
                        an.textAlign = "center";
                        an.fontWeight = D.fontweight;
                        an.fontStyle = D.fontstyle;
                        an.cursor = "default";
                        at = 14 + 3 * D.fontsize
                    } else {
                        if (al.indexOf("divider") === 0) {
                            if (ai) {
                                if (!isNaN(parseInt(ai))) {
                                    at = parseInt(ai)
                                }
                            } else {
                                if (ak) {
                                    var ap = k.skin.getSkinElement("controlbar", ak);
                                    if (ap) {
                                        an.background = "url(" + ap.src + ") repeat-x center left";
                                        at = ap.width
                                    }
                                } else {
                                    an.background = "url(" + k.skin.getSkinElement("controlbar", "divider").src + ") repeat-x center left";
                                    at = k.skin.getSkinElement("controlbar", "divider").width
                                }
                            }
                        } else {
                            an.background = "url(" + k.skin.getSkinElement("controlbar", al).src + ") repeat-x center left";
                            at = k.skin.getSkinElement("controlbar", al).width
                        }
                    }
                    if (ao == "left") {
                        an.left = isNaN(am) ? ab : am;
                        if (aj) {
                            ab += at
                        }
                    } else {
                        if (ao == "right") {
                            an.right = isNaN(am) ? E : am;
                            if (aj) {
                                E += at
                            }
                        }
                    }
                    if (_utils.typeOf(ar) == "undefined") {
                        ar = Q.elements
                    }
                    an.width = at;
                    if (p) {
                        _css(Q[al], an)
                    } else {
                        var aq = Z(al, ar, an);
                        if (_utils.exists(k.skin.getSkinElement("controlbar", al + "Over"))) {
                            aq.onmouseover = function (au) {
                                aq.style.backgroundImage = ["url(", k.skin.getSkinElement("controlbar", al + "Over").src, ")"].join("")
                            };
                            aq.onmouseout = function (au) {
                                aq.style.backgroundImage = ["url(", k.skin.getSkinElement("controlbar", al).src, ")"].join("")
                            }
                        }
                    }
                }
            }
            function F() {
                k.jwAddEventListener(a.api.events.JWPLAYER_PLAYLIST_LOADED, B);
                k.jwAddEventListener(a.api.events.JWPLAYER_PLAYLIST_ITEM, s);
                k.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_BUFFER, u);
                k.jwAddEventListener(a.api.events.JWPLAYER_PLAYER_STATE, r);
                k.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_TIME, I);
                k.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_MUTE, ag);
                k.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_VOLUME, m);
                k.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_COMPLETE, L)
            }
            function B() {
                N();
                M();
                w();
                ae()
            }
            function s(ai) {
                ad = k.jwGetPlaylist()[ai.index].duration;
                I({
                    id: k.id,
                    duration: ad,
                    position: 0
                });
                u({
                    id: k.id,
                    bufferProgress: 0
                })
            }
            function ae() {
                I({
                    id: k.id,
                    duration: k.jwGetDuration(),
                    position: 0
                });
                u({
                    id: k.id,
                    bufferProgress: 0
                });
                ag({
                    id: k.id,
                    mute: k.jwGetMute()
                });
                r({
                    id: k.id,
                    newstate: a.api.events.state.IDLE
                });
                m({
                    id: k.id,
                    volume: k.jwGetVolume()
                })
            }
            function R(ak, al, aj) {
                if (p) {
                    return
                }
                if (_utils.exists(k.skin.getSkinElement("controlbar", ak))) {
                    var ai = Q[ak];
                    if (_utils.exists(ai)) {
                        _css(ai, {
                            cursor: "pointer"
                        });
                        if (al == "fullscreen") {
                            ai.onmouseup = function (am) {
                                am.stopPropagation();
                                k.jwSetFullscreen(!k.jwGetFullscreen())
                            }
                        } else {
                            ai.onmouseup = function (am) {
                                am.stopPropagation();
                                if (_utils.exists(aj)) {
                                    k[al](aj)
                                } else {
                                    k[al]()
                                }
                            }
                        }
                    }
                }
            }
            function X(ai) {
                if (p) {
                    return
                }
                var aj = Q[ai + "Slider"];
                _css(Q.elements, {
                    cursor: "pointer"
                });
                _css(aj, {
                    cursor: "pointer"
                });
                aj.onmousedown = function (ak) {
                    v = ai
                };
                aj.onmouseup = function (ak) {
                    ak.stopPropagation();
                    af(ak.pageX)
                };
                aj.onmousemove = function (ak) {
                    if (v == "time") {
                        g = true;
                        var al = ak.pageX - c[ai + "Slider"].left - window.pageXOffset;
                        _css(Q.timeSliderThumb, {
                            left: al
                        })
                    }
                }
            }
            function af(aj) {
                g = false;
                var ai;
                if (v == "time") {
                    ai = aj - c.timeSliderRail.left + window.pageXOffset;
                    var al = ai / c.timeSliderRail.width * ad;
                    if (al < 0) {
                        al = 0
                    } else {
                        if (al > ad) {
                            al = ad - 3
                        }
                    }
                    if (k.jwGetState() == a.api.events.state.PAUSED || k.jwGetState() == a.api.events.state.IDLE) {
                        k.jwPlay()
                    }
                    k.jwSeek(al)
                } else {
                    if (v == "volume") {
                        ai = aj - c.volumeSliderRail.left - window.pageXOffset;
                        var ak = Math.round(ai / c.volumeSliderRail.width * 100);
                        if (ak < 0) {
                            ak = 0
                        } else {
                            if (ak > 100) {
                                ak = 100
                            }
                        }
                        if (k.jwGetMute()) {
                            k.jwSetMute(false)
                        }
                        k.jwSetVolume(ak)
                    }
                }
                v = "none"
            }
            function u(aj) {
                if (_utils.exists(aj.bufferPercent)) {
                    f = aj.bufferPercent
                }
                if (c.timeSliderRail) {
                    var ak = c.timeSliderRail.width;
                    var ai = isNaN(Math.round(ak * f / 100)) ? 0 : Math.round(ak * f / 100);
                    _css(Q.timeSliderBuffer, {
                        width: ai
                    })
                }
            }
            function ag(ai) {
                if (ai.mute) {
                    _hide(Q.muteButton);
                    _show(Q.unmuteButton);
                    _hide(Q.volumeSliderProgress)
                } else {
                    _show(Q.muteButton);
                    _hide(Q.unmuteButton);
                    _show(Q.volumeSliderProgress)
                }
            }
            function r(ai) {
                if (ai.newstate == a.api.events.state.BUFFERING || ai.newstate == a.api.events.state.PLAYING) {
                    _show(Q.pauseButton);
                    _hide(Q.playButton)
                } else {
                    _hide(Q.pauseButton);
                    _show(Q.playButton)
                }
                A();
                if (ai.newstate == a.api.events.state.IDLE) {
                    _hide(Q.timeSliderBuffer);
                    _hide(Q.timeSliderProgress);
                    _hide(Q.timeSliderThumb);
                    I({
                        id: k.id,
                        duration: k.jwGetDuration(),
                        position: 0
                    })
                } else {
                    _show(Q.timeSliderBuffer);
                    if (ai.newstate != a.api.events.state.BUFFERING) {
                        _show(Q.timeSliderProgress);
                        _show(Q.timeSliderThumb)
                    }
                }
            }
            function L(ai) {
                u({
                    bufferPercent: 0
                });
                I(_utils.extend(ai, {
                    position: 0,
                    duration: ad
                }))
            }
            function I(al) {
                if (_utils.exists(al.position)) {
                    j = al.position
                }
                if (_utils.exists(al.duration)) {
                    ad = al.duration
                }
                var aj = (j === ad === 0) ? 0 : j / ad;
                var am = c.timeSliderRail;
                if (am) {
                    var ai = isNaN(Math.round(am.width * aj)) ? 0 : Math.round(am.width * aj);
                    var ak = ai;
                    if (Q.timeSliderProgress) {
                        Q.timeSliderProgress.style.width = ai + "px";
                        if (!g) {
                            if (Q.timeSliderThumb) {
                                Q.timeSliderThumb.style.left = ak + "px"
                            }
                        }
                    }
                }
                if (Q.durationText) {
                    Q.durationText.innerHTML = _utils.timeFormat(ad)
                }
                if (Q.elapsedText) {
                    Q.elapsedText.innerHTML = _utils.timeFormat(j)
                }
            }
            function n() {
                var am, aj;
                var ak = document.getElementById(ac.id + "_elements");
                if (!ak) {
                    return
                }
                var al = ak.childNodes;
                for (var ai in ak.childNodes) {
                    if (isNaN(parseInt(ai, 10))) {
                        continue
                    }
                    if (al[ai].id.indexOf(ac.id + "_divider") === 0 && aj && aj.id.indexOf(ac.id + "_divider") === 0 && al[ai].style.backgroundImage == aj.style.backgroundImage) {
                        al[ai].style.display = "none"
                    } else {
                        if (al[ai].id.indexOf(ac.id + "_divider") === 0 && am && am.style.display != "none") {
                            al[ai].style.display = "block"
                        }
                    }
                    if (al[ai].style.display != "none") {
                        aj = al[ai]
                    }
                    am = al[ai]
                }
            }
            function w() {
                n();
                if (k.jwGetFullscreen()) {
                    _show(Q.normalscreenButton);
                    _hide(Q.fullscreenButton)
                } else {
                    _hide(Q.normalscreenButton);
                    _show(Q.fullscreenButton)
                }
                var aj = {
                    width: e
                };
                var ai = {};
                if (D.position == a.html5.view.positions.OVER || k.jwGetFullscreen()) {
                    aj.left = D.margin;
                    aj.width -= 2 * D.margin;
                    aj.top = y - J().height - D.margin;
                    aj.height = J().height
                }
                var al = k.skin.getSkinElement("controlbar", "capLeft");
                var ak = k.skin.getSkinElement("controlbar", "capRight");
                ai.left = al ? al.width : 0;
                ai.width = aj.width - ai.left - (ak ? ak.width : 0);
                var am = !_utils.exists(k.skin.getSkinElement("controlbar", "timeSliderCapLeft")) ? 0 : k.skin.getSkinElement("controlbar", "timeSliderCapLeft").width;
                _css(Q.timeSliderRail, {
                    width: (ai.width - ab - E),
                    left: am
                });
                if (_utils.exists(Q.timeSliderCapRight)) {
                    _css(Q.timeSliderCapRight, {
                        left: am + (ai.width - ab - E)
                    })
                }
                _css(ac, aj);
                _css(Q.elements, ai);
                _css(Q.background, ai);
                q();
                return aj
            }
            function m(am) {
                if (_utils.exists(Q.volumeSliderRail)) {
                    var ak = isNaN(am.volume / 100) ? 1 : am.volume / 100;
                    var al = _utils.parseDimension(Q.volumeSliderRail.style.width);
                    var ai = isNaN(Math.round(al * ak)) ? 0 : Math.round(al * ak);
                    var an = _utils.parseDimension(Q.volumeSliderRail.style.right);
                    var aj = (!_utils.exists(k.skin.getSkinElement("controlbar", "volumeSliderCapLeft"))) ? 0 : k.skin.getSkinElement("controlbar", "volumeSliderCapLeft").width;
                    _css(Q.volumeSliderProgress, {
                        width: ai,
                        left: aj
                    });
                    if (_utils.exists(Q.volumeSliderCapLeft)) {
                        _css(Q.volumeSliderCapLeft, {
                            left: 0
                        })
                    }
                }
            }
            function t() {
                N();
                M();
                q();
                p = true;
                F();
                D.idlehide = (D.idlehide.toString().toLowerCase() == "true");
                if (D.position == a.html5.view.positions.OVER && D.idlehide) {
                    ac.style.opacity = 0;
                    S = true
                } else {
                    setTimeout((function () {
                        S = true;
                        T()
                    }), 1)
                }
                ae()
            }
            t();
            return this
        }
    })(jwplayer);
    (function (b) {
        var a = ["width", "height", "state", "playlist", "item", "position", "buffer", "duration", "volume", "mute", "fullscreen"];
        var c = b.utils;
        b.html5.controller = function (z, w, h, v) {
            var C = z;
            var G = h;
            var g = v;
            var o = w;
            var J = true;
            var e = -1;
            var A = c.exists(G.config.debug) && (G.config.debug.toString().toLowerCase() == "console");
            var m = new b.html5.eventdispatcher(o.id, A);
            c.extend(this, m);
            var E = [];
            var d = false;

            function r(M) {
                if (d) {
                    m.sendEvent(M.type, M)
                } else {
                    E.push(M)
                }
            }
            function K(M) {
                if (!d) {
                    m.sendEvent(b.api.events.JWPLAYER_READY, M);
                    if (b.utils.exists(window.playerReady)) {
                        playerReady(M)
                    }
                    if (b.utils.exists(window[h.config.playerReady])) {
                        window[h.config.playerReady](M)
                    }
                    while (E.length > 0) {
                        var O = E.shift();
                        m.sendEvent(O.type, O)
                    }
                    if (h.config.autostart && !b.utils.isIOS()) {
                        t(G.item)
                    }
                    while (p.length > 0) {
                        var N = p.shift();
                        x(N.method, N.arguments)
                    }
                    d = true
                }
            }
            G.addGlobalListener(r);
            G.addEventListener(b.api.events.JWPLAYER_MEDIA_BUFFER_FULL, function () {
                G.getMedia().play()
            });
            G.addEventListener(b.api.events.JWPLAYER_MEDIA_TIME, function (M) {
                if (M.position >= G.playlist[G.item].start && e >= 0) {
                    G.playlist[G.item].start = e;
                    e = -1
                }
            });
            G.addEventListener(b.api.events.JWPLAYER_MEDIA_COMPLETE, function (M) {
                setTimeout(s, 25)
            });

            function u() {
                try {
                    f(G.item);
                    if (G.playlist[G.item].levels[0].file.length > 0) {
                        if (J || G.state == b.api.events.state.IDLE) {
                            G.getMedia().load(G.playlist[G.item]);
                            J = false
                        } else {
                            if (G.state == b.api.events.state.PAUSED) {
                                G.getMedia().play()
                            }
                        }
                    }
                    return true
                } catch (M) {
                    m.sendEvent(b.api.events.JWPLAYER_ERROR, M)
                }
                return false
            }
            function I() {
                try {
                    if (G.playlist[G.item].levels[0].file.length > 0) {
                        switch (G.state) {
                            case b.api.events.state.PLAYING:
                            case b.api.events.state.BUFFERING:
                                G.getMedia().pause();
                                break
                        }
                    }
                    return true
                } catch (M) {
                    m.sendEvent(b.api.events.JWPLAYER_ERROR, M)
                }
                return false
            }
            function D(M) {
                try {
                    if (G.playlist[G.item].levels[0].file.length > 0) {
                        if (typeof M != "number") {
                            M = parseFloat(M)
                        }
                        switch (G.state) {
                            case b.api.events.state.IDLE:
                                if (e < 0) {
                                    e = G.playlist[G.item].start;
                                    G.playlist[G.item].start = M
                                }
                                u();
                                break;
                            case b.api.events.state.PLAYING:
                            case b.api.events.state.PAUSED:
                            case b.api.events.state.BUFFERING:
                                G.seek(M);
                                break
                        }
                    }
                    return true
                } catch (N) {
                    m.sendEvent(b.api.events.JWPLAYER_ERROR, N)
                }
                return false
            }
            function n(M) {
                if (!c.exists(M)) {
                    M = true
                }
                try {
                    G.getMedia().stop(M);
                    return true
                } catch (N) {
                    m.sendEvent(b.api.events.JWPLAYER_ERROR, N)
                }
                return false
            }
            function k() {
                try {
                    if (G.playlist[G.item].levels[0].file.length > 0) {
                        if (G.config.shuffle) {
                            f(y())
                        } else {
                            if (G.item + 1 == G.playlist.length) {
                                f(0)
                            } else {
                                f(G.item + 1)
                            }
                        }
                    }
                    if (G.state != b.api.events.state.IDLE) {
                        var N = G.state;
                        G.state = b.api.events.state.IDLE;
                        m.sendEvent(b.api.events.JWPLAYER_PLAYER_STATE, {
                            oldstate: N,
                            newstate: b.api.events.state.IDLE
                        })
                    }
                    u();
                    return true
                } catch (M) {
                    m.sendEvent(b.api.events.JWPLAYER_ERROR, M)
                }
                return false
            }
            function j() {
                try {
                    if (G.playlist[G.item].levels[0].file.length > 0) {
                        if (G.config.shuffle) {
                            f(y())
                        } else {
                            if (G.item === 0) {
                                f(G.playlist.length - 1)
                            } else {
                                f(G.item - 1)
                            }
                        }
                    }
                    if (G.state != b.api.events.state.IDLE) {
                        var N = G.state;
                        G.state = b.api.events.state.IDLE;
                        m.sendEvent(b.api.events.JWPLAYER_PLAYER_STATE, {
                            oldstate: N,
                            newstate: b.api.events.state.IDLE
                        })
                    }
                    u();
                    return true
                } catch (M) {
                    m.sendEvent(b.api.events.JWPLAYER_ERROR, M)
                }
                return false
            }
            function y() {
                var M = null;
                if (G.playlist.length > 1) {
                    while (!c.exists(M)) {
                        M = Math.floor(Math.random() * G.playlist.length);
                        if (M == G.item) {
                            M = null
                        }
                    }
                } else {
                    M = 0
                }
                return M
            }
            function t(N) {
                if (!G.playlist || !G.playlist[N]) {
                    return false
                }
                try {
                    if (G.playlist[N].levels[0].file.length > 0) {
                        var O = G.state;
                        if (O !== b.api.events.state.IDLE) {
                            if (G.playlist[G.item].provider == G.playlist[N].provider) {
                                n(false)
                            } else {
                                n()
                            }
                        }
                        f(N);
                        u()
                    }
                    return true
                } catch (M) {
                    m.sendEvent(b.api.events.JWPLAYER_ERROR, M)
                }
                return false
            }
            function f(M) {
                if (!G.playlist[M]) {
                    return
                }
                G.setActiveMediaProvider(G.playlist[M]);
                if (G.item != M) {
                    G.item = M;
                    J = true;
                    m.sendEvent(b.api.events.JWPLAYER_PLAYLIST_ITEM, {
                        index: M
                    })
                }
            }
            function H(N) {
                try {
                    f(G.item);
                    var O = G.getMedia();
                    switch (typeof (N)) {
                        case "number":
                            O.volume(N);
                            break;
                        case "string":
                            O.volume(parseInt(N, 10));
                            break
                    }
                    return true
                } catch (M) {
                    m.sendEvent(b.api.events.JWPLAYER_ERROR, M)
                }
                return false
            }
            function q(N) {
                try {
                    f(G.item);
                    var O = G.getMedia();
                    if (typeof N == "undefined") {
                        O.mute(!G.mute)
                    } else {
                        if (N.toString().toLowerCase() == "true") {
                            O.mute(true)
                        } else {
                            O.mute(false)
                        }
                    }
                    return true
                } catch (M) {
                    m.sendEvent(b.api.events.JWPLAYER_ERROR, M)
                }
                return false
            }
            function l(N, M) {
                try {
                    G.width = N;
                    G.height = M;
                    g.resize(N, M);
                    m.sendEvent(b.api.events.JWPLAYER_RESIZE, {
                        width: G.width,
                        height: G.height
                    });
                    return true
                } catch (O) {
                    m.sendEvent(b.api.events.JWPLAYER_ERROR, O)
                }
                return false
            }
            function B(N) {
                try {
                    if (typeof N == "undefined") {
                        G.fullscreen = !G.fullscreen;
                        g.fullscreen(!G.fullscreen)
                    } else {
                        if (N.toString().toLowerCase() == "true") {
                            G.fullscreen = true;
                            g.fullscreen(true)
                        } else {
                            G.fullscreen = false;
                            g.fullscreen(false)
                        }
                    }
                    m.sendEvent(b.api.events.JWPLAYER_RESIZE, {
                        width: G.width,
                        height: G.height
                    });
                    m.sendEvent(b.api.events.JWPLAYER_FULLSCREEN, {
                        fullscreen: N
                    });
                    return true
                } catch (M) {
                    m.sendEvent(b.api.events.JWPLAYER_ERROR, M)
                }
                return false
            }
            function L(M) {
                try {
                    n();
                    G.loadPlaylist(M);
                    f(G.item);
                    return true
                } catch (N) {
                    m.sendEvent(b.api.events.JWPLAYER_ERROR, N)
                }
                return false
            }
            b.html5.controller.repeatoptions = {
                LIST: "LIST",
                ALWAYS: "ALWAYS",
                SINGLE: "SINGLE",
                NONE: "NONE"
            };

            function s() {
                switch (G.config.repeat.toUpperCase()) {
                    case b.html5.controller.repeatoptions.SINGLE:
                        u();
                        break;
                    case b.html5.controller.repeatoptions.ALWAYS:
                        if (G.item == G.playlist.length - 1 && !G.config.shuffle) {
                            t(0)
                        } else {
                            k()
                        }
                        break;
                    case b.html5.controller.repeatoptions.LIST:
                        if (G.item == G.playlist.length - 1 && !G.config.shuffle) {
                            n();
                            f(0)
                        } else {
                            k()
                        }
                        break;
                    default:
                        n();
                        break
                }
            }
            var p = [];

            function F(M) {
                return function () {
                    if (d) {
                        x(M, arguments)
                    } else {
                        p.push({
                            method: M,
                            arguments: arguments
                        })
                    }
                }
            }
            function x(O, N) {
                var M = [];
                for (i = 0; i < N.length; i++) {
                    M.push(N[i])
                }
                O.apply(this, M)
            }
            this.play = F(u);
            this.pause = F(I);
            this.seek = F(D);
            this.stop = F(n);
            this.next = F(k);
            this.prev = F(j);
            this.item = F(t);
            this.setVolume = F(H);
            this.setMute = F(q);
            this.resize = F(l);
            this.setFullscreen = F(B);
            this.load = F(L);
            this.playerReady = K
        }
    })(jwplayer);
    (function (a) {
        a.html5.defaultSkin = function () {
            this.text = '<?xml version="1.0" ?><skin author="LongTail Video" name="Five" version="1.0"><settings><setting name="backcolor" value="0xFFFFFF"/><setting name="frontcolor" value="0x000000"/><setting name="lightcolor" value="0x000000"/><setting name="screencolor" value="0x000000"/></settings><components><component name="controlbar"><settings><setting name="margin" value="20"/><setting name="fontsize" value="11"/></settings><elements><element name="background" src=""/><element name="capLeft" src=""/><element name="capRight" src=""/><element name="divider" src=""/><element name="playButton" src=""/><element name="pauseButton" src=""/><element name="prevButton" src=""/><element name="nextButton" src=""/><element name="timeSliderRail" src=""/><element name="timeSliderBuffer" src=""/><element name="timeSliderProgress" src=""/><element name="timeSliderThumb" src=""/><element name="muteButton" src=""/><element name="unmuteButton" src=""/><element name="volumeSliderRail" src=""/><element name="volumeSliderProgress" src=""/><element name="fullscreenButton" src=""/><element name="normalscreenButton" src=""/></elements></component><component name="display"><elements><element name="background" src=""/><element name="playIcon" src=""/><element name="muteIcon" src=""/><element name="errorIcon" src=""/><element name="bufferIcon" src=""/></elements></component><component name="dock"><elements><element name="button" src=""/></elements></component><component name="playlist"><elements><element name="item" src=""/><element name="sliderRail" src=""/><element name="sliderThumb" src=""/></elements></component></components></skin>';
            this.xml = null;
            if (window.DOMParser) {
                parser = new DOMParser();
                this.xml = parser.parseFromString(this.text, "text/xml")
            } else {
                this.xml = new ActiveXObject("Microsoft.XMLDOM");
                this.xml.async = "false";
                this.xml.loadXML(this.text)
            }
            return this
        }
    })(jwplayer);
    (function (a) {
        _utils = a.utils;
        _css = _utils.css;
        _hide = function (b) {
            _css(b, {
                display: "none"
            })
        };
        _show = function (b) {
            _css(b, {
                display: "block"
            })
        };
        a.html5.display = function (k, G) {
            var j = {
                icons: true,
                showmute: false
            };
            var Q = _utils.extend({}, j, G);
            var h = k;
            var P = {};
            var e;
            var u;
            var w;
            var N;
            var s;
            var I;
            var A;
            var J = !_utils.exists(h.skin.getComponentSettings("display").bufferrotation) ? 15 : parseInt(h.skin.getComponentSettings("display").bufferrotation, 10);
            var q = !_utils.exists(h.skin.getComponentSettings("display").bufferinterval) ? 100 : parseInt(h.skin.getComponentSettings("display").bufferinterval, 10);
            var z = -1;
            var t = "";
            var K = true;
            var d;
            var g = false;
            var n = false;
            var H = new a.html5.eventdispatcher();
            _utils.extend(this, H);
            var D = {
                display: {
                    style: {
                        cursor: "pointer",
                        top: 0,
                        left: 0,
                        overflow: "hidden"
                    },
                    click: m
                },
                display_icon: {
                    style: {
                        cursor: "pointer",
                        position: "absolute",
                        top: ((h.skin.getSkinElement("display", "background").height - h.skin.getSkinElement("display", "playIcon").height) / 2),
                        left: ((h.skin.getSkinElement("display", "background").width - h.skin.getSkinElement("display", "playIcon").width) / 2),
                        border: 0,
                        margin: 0,
                        padding: 0,
                        zIndex: 3,
                        display: "none"
                    }
                },
                display_iconBackground: {
                    style: {
                        cursor: "pointer",
                        position: "absolute",
                        top: ((u - h.skin.getSkinElement("display", "background").height) / 2),
                        left: ((e - h.skin.getSkinElement("display", "background").width) / 2),
                        border: 0,
                        backgroundImage: (["url(", h.skin.getSkinElement("display", "background").src, ")"]).join(""),
                        width: h.skin.getSkinElement("display", "background").width,
                        height: h.skin.getSkinElement("display", "background").height,
                        margin: 0,
                        padding: 0,
                        zIndex: 2,
                        display: "none"
                    }
                },
                display_image: {
                    style: {
                        display: "none",
                        width: e,
                        height: u,
                        position: "absolute",
                        cursor: "pointer",
                        left: 0,
                        top: 0,
                        margin: 0,
                        padding: 0,
                        textDecoration: "none",
                        zIndex: 1
                    }
                },
                display_text: {
                    style: {
                        zIndex: 4,
                        position: "relative",
                        opacity: 0.8,
                        backgroundColor: parseInt("000000", 16),
                        color: parseInt("ffffff", 16),
                        textAlign: "center",
                        fontFamily: "Arial,sans-serif",
                        padding: "0 5px",
                        fontSize: 14
                    }
                }
            };
            h.jwAddEventListener(a.api.events.JWPLAYER_PLAYER_STATE, p);
            h.jwAddEventListener(a.api.events.JWPLAYER_MEDIA_MUTE, p);
            h.jwAddEventListener(a.api.events.JWPLAYER_PLAYLIST_ITEM, p);
            h.jwAddEventListener(a.api.events.JWPLAYER_ERROR, o);
            L();

            function L() {
                P.display = C("div", "display");
                P.display_text = C("div", "display_text");
                P.display.appendChild(P.display_text);
                P.display_image = C("img", "display_image");
                P.display_image.onerror = function (R) {
                    _hide(P.display_image)
                };
                P.display_image.onload = y;
                P.display_icon = C("div", "display_icon");
                P.display_iconBackground = C("div", "display_iconBackground");
                P.display.appendChild(P.display_image);
                P.display_iconBackground.appendChild(P.display_icon);
                P.display.appendChild(P.display_iconBackground);
                f();
                setTimeout((function () {
                    n = true;
                    if (Q.icons.toString() == "true") {
                        F()
                    }
                }), 1)
            }
            this.getDisplayElement = function () {
                return P.display
            };
            this.resize = function (S, R) {
                _css(P.display, {
                    width: S,
                    height: R
                });
                _css(P.display_text, {
                    width: (S - 10),
                    top: ((R - P.display_text.getBoundingClientRect().height) / 2)
                });
                _css(P.display_iconBackground, {
                    top: ((R - h.skin.getSkinElement("display", "background").height) / 2),
                    left: ((S - h.skin.getSkinElement("display", "background").width) / 2)
                });
                if (e != S || u != R) {
                    e = S;
                    u = R;
                    d = undefined;
                    F()
                }
                c();
                p({})
            };
            this.show = function () {
                if (g) {
                    g = false;
                    r(h.jwGetState())
                }
            };
            this.hide = function () {
                if (!g) {
                    B();
                    g = true
                }
            };

            function y(R) {
                w = P.display_image.naturalWidth;
                N = P.display_image.naturalHeight;
                c()
            }
            function c() {
                _utils.stretch(h.jwGetStretching(), P.display_image, e, u, w, N)
            }
            function C(R, T) {
                var S = document.createElement(R);
                S.id = h.id + "_jwplayer_" + T;
                _css(S, D[T].style);
                return S
            }
            function f() {
                for (var R in P) {
                    if (_utils.exists(D[R].click)) {
                        P[R].onclick = D[R].click
                    }
                }
            }
            function m(R) {
                if (typeof R.preventDefault != "undefined") {
                    R.preventDefault()
                } else {
                    R.returnValue = false
                }
                if (h.jwGetState() != a.api.events.state.PLAYING) {
                    h.jwPlay()
                } else {
                    h.jwPause()
                }
            }
            function O(R) {
                if (A) {
                    B();
                    return
                }
                P.display_icon.style.backgroundImage = (["url(", h.skin.getSkinElement("display", R).src, ")"]).join("");
                _css(P.display_icon, {
                    width: h.skin.getSkinElement("display", R).width,
                    height: h.skin.getSkinElement("display", R).height,
                    top: (h.skin.getSkinElement("display", "background").height - h.skin.getSkinElement("display", R).height) / 2,
                    left: (h.skin.getSkinElement("display", "background").width - h.skin.getSkinElement("display", R).width) / 2
                });
                b();
                if (_utils.exists(h.skin.getSkinElement("display", R + "Over"))) {
                    P.display_icon.onmouseover = function (S) {
                        P.display_icon.style.backgroundImage = ["url(", h.skin.getSkinElement("display", R + "Over").src, ")"].join("")
                    };
                    P.display_icon.onmouseout = function (S) {
                        P.display_icon.style.backgroundImage = ["url(", h.skin.getSkinElement("display", R).src, ")"].join("")
                    }
                } else {
                    P.display_icon.onmouseover = null;
                    P.display_icon.onmouseout = null
                }
            }
            function B() {
                if (Q.icons.toString() == "true") {
                    _hide(P.display_icon);
                    _hide(P.display_iconBackground);
                    M()
                }
            }
            function b() {
                if (!g && Q.icons.toString() == "true") {
                    _show(P.display_icon);
                    _show(P.display_iconBackground);
                    F()
                }
            }
            function o(R) {
                A = true;
                B();
                P.display_text.innerHTML = R.error;
                _show(P.display_text);
                P.display_text.style.top = ((u - P.display_text.getBoundingClientRect().height) / 2) + "px"
            }
            function E() {
                P.display_image.style.display = "none"
            }
            function p(R) {
                if ((R.type == a.api.events.JWPLAYER_PLAYER_STATE || R.type == a.api.events.JWPLAYER_PLAYLIST_ITEM) && A) {
                    A = false;
                    _hide(P.display_text)
                }
                var S = h.jwGetState();
                if (S == t) {
                    return
                }
                t = S;
                if (z >= 0) {
                    clearTimeout(z)
                }
                if (K || h.jwGetState() == a.api.events.state.PLAYING || h.jwGetState() == a.api.events.state.PAUSED) {
                    r(h.jwGetState())
                } else {
                    z = setTimeout(l(h.jwGetState()), 500)
                }
            }
            function l(R) {
                return (function () {
                    r(R)
                })
            }
            function r(R) {
                if (_utils.exists(I)) {
                    clearInterval(I);
                    I = null;
                    _utils.animations.rotate(P.display_icon, 0)
                }
                switch (R) {
                    case a.api.events.state.BUFFERING:
                        if (_utils.isIOS()) {
                            E();
                            B()
                        } else {
                            if (h.jwGetPlaylist()[h.jwGetItem()].provider == "sound") {
                                v()
                            }
                            s = 0;
                            I = setInterval(function () {
                                s += J;
                                _utils.animations.rotate(P.display_icon, s % 360)
                            }, q);
                            O("bufferIcon");
                            K = true
                        }
                        break;
                    case a.api.events.state.PAUSED:
                        if (!_utils.isIOS()) {
                            if (h.jwGetPlaylist()[h.jwGetItem()].provider != "sound") {
                                _css(P.display_image, {
                                    background: "transparent no-repeat center center"
                                })
                            }
                            O("playIcon");
                            K = true
                        }
                        break;
                    case a.api.events.state.IDLE:
                        if (h.jwGetPlaylist()[h.jwGetItem()] && h.jwGetPlaylist()[h.jwGetItem()].image) {
                            v()
                        } else {
                            E()
                        }
                        O("playIcon");
                        K = true;
                        break;
                    default:
                        if (h.jwGetPlaylist()[h.jwGetItem()] && h.jwGetPlaylist()[h.jwGetItem()].provider == "sound") {
                            if (_utils.isIOS()) {
                                E();
                                K = false
                            } else {
                                v()
                            }
                        } else {
                            E();
                            K = false
                        }
                        if (h.jwGetMute() && Q.showmute) {
                            O("muteIcon")
                        } else {
                            B()
                        }
                        break
                }
                z = -1
            }
            function v() {
                if (h.jwGetPlaylist()[h.jwGetItem()] && h.jwGetPlaylist()[h.jwGetItem()].image) {
                    _css(P.display_image, {
                        display: "block"
                    });
                    P.display_image.src = _utils.getAbsolutePath(h.jwGetPlaylist()[h.jwGetItem()].image)
                }
            }
            function x(R) {
                return function () {
                    if (!n) {
                        return
                    }
                    if (!g && d != R) {
                        d = R;
                        H.sendEvent(R, {
                            component: "display",
                            boundingRect: _utils.getDimensions(P.display_iconBackground)
                        })
                    }
                }
            }
            var F = x(a.api.events.JWPLAYER_COMPONENT_SHOW);
            var M = x(a.api.events.JWPLAYER_COMPONENT_HIDE);
            return this
        }
    })(jwplayer);
    (function (a) {
        _css = a.utils.css;
        a.html5.dock = function (p, u) {
            function q() {
                return {
                    align: a.html5.view.positions.RIGHT
                }
            }
            var k = a.utils.extend({}, q(), u);
            if (k.align == "FALSE") {
                return
            }
            var f = {};
            var s = [];
            var g;
            var v;
            var d = false;
            var t = false;
            var e = {
                x: 0,
                y: 0,
                width: 0,
                height: 0
            };
            var r;
            var j = new a.html5.eventdispatcher();
            _utils.extend(this, j);
            var m = document.createElement("div");
            m.id = p.id + "_jwplayer_dock";
            p.jwAddEventListener(a.api.events.JWPLAYER_PLAYER_STATE, l);
            this.getDisplayElement = function () {
                return m
            };
            this.setButton = function (A, x, y, z) {
                if (!x && f[A]) {
                    a.utils.arrays.remove(s, A);
                    m.removeChild(f[A].div);
                    delete f[A]
                } else {
                    if (x) {
                        if (!f[A]) {
                            f[A] = {}
                        }
                        f[A].handler = x;
                        f[A].outGraphic = y;
                        f[A].overGraphic = z;
                        if (!f[A].div) {
                            s.push(A);
                            f[A].div = document.createElement("div");
                            f[A].div.style.position = "relative";
                            m.appendChild(f[A].div);
                            f[A].div.appendChild(document.createElement("img"));
                            f[A].div.childNodes[0].style.position = "absolute";
                            f[A].div.childNodes[0].style.left = 0;
                            f[A].div.childNodes[0].style.top = 0;
                            f[A].div.childNodes[0].style.zIndex = 10;
                            f[A].div.childNodes[0].style.cursor = "pointer";
                            f[A].div.appendChild(document.createElement("img"));
                            f[A].div.childNodes[1].style.position = "absolute";
                            f[A].div.childNodes[1].style.left = 0;
                            f[A].div.childNodes[1].style.top = 0;
                            if (p.skin.getSkinElement("dock", "button")) {
                                f[A].div.childNodes[1].src = p.skin.getSkinElement("dock", "button").src
                            }
                            f[A].div.childNodes[1].style.zIndex = 9;
                            f[A].div.childNodes[1].style.cursor = "pointer";
                            f[A].div.onmouseover = function () {
                                if (f[A].overGraphic) {
                                    f[A].div.childNodes[0].src = f[A].overGraphic
                                }
                                if (p.skin.getSkinElement("dock", "buttonOver")) {
                                    f[A].div.childNodes[1].src = p.skin.getSkinElement("dock", "buttonOver").src
                                }
                            };
                            f[A].div.onmouseout = function () {
                                if (f[A].outGraphic) {
                                    f[A].div.childNodes[0].src = f[A].outGraphic
                                }
                                if (p.skin.getSkinElement("dock", "button")) {
                                    f[A].div.childNodes[1].src = p.skin.getSkinElement("dock", "button").src
                                }
                            };
                            if (f[A].overGraphic) {
                                f[A].div.childNodes[0].src = f[A].overGraphic
                            }
                            if (f[A].outGraphic) {
                                f[A].div.childNodes[0].src = f[A].outGraphic
                            }
                            if (p.skin.getSkinElement("dock", "button")) {
                                f[A].div.childNodes[1].src = p.skin.getSkinElement("dock", "button").src
                            }
                        }
                        if (x) {
                            f[A].div.onclick = function (B) {
                                B.preventDefault();
                                a(p.id).callback(A);
                                if (f[A].overGraphic) {
                                    f[A].div.childNodes[0].src = f[A].overGraphic
                                }
                                if (p.skin.getSkinElement("dock", "button")) {
                                    f[A].div.childNodes[1].src = p.skin.getSkinElement("dock", "button").src
                                }
                            }
                        }
                    }
                }
                h(g, v)
            };

            function h(x, J) {
                if (s.length > 0) {
                    var y = 10;
                    var I = y;
                    var F = -1;
                    var G = p.skin.getSkinElement("dock", "button").height;
                    var E = p.skin.getSkinElement("dock", "button").width;
                    var C = x - E - y;
                    var H, B;
                    if (k.align == a.html5.view.positions.LEFT) {
                        F = 1;
                        C = y
                    }
                    for (var z = 0; z < s.length; z++) {
                        var K = Math.floor(I / J);
                        if ((I + G + y) > ((K + 1) * J)) {
                            I = ((K + 1) * J) + y;
                            K = Math.floor(I / J)
                        }
                        var A = f[s[z]].div;
                        A.style.top = (I % J) + "px";
                        A.style.left = (C + (p.skin.getSkinElement("dock", "button").width + y) * K * F) + "px";
                        var D = {
                            x: a.utils.parseDimension(A.style.left),
                            y: a.utils.parseDimension(A.style.top),
                            width: E,
                            height: G
                        };
                        if (!H || (D.x <= H.x && D.y <= H.y)) {
                            H = D
                        }
                        if (!B || (D.x >= B.x && D.y >= B.y)) {
                            B = D
                        }
                        I += p.skin.getSkinElement("dock", "button").height + y
                    }
                    e = {
                        x: H.x,
                        y: H.y,
                        width: B.x - H.x + B.width,
                        height: H.y - B.y + B.height
                    }
                }
                if (t != p.jwGetFullscreen() || g != x || v != J) {
                    g = x;
                    v = J;
                    t = p.jwGetFullscreen();
                    r = undefined;
                    setTimeout(n, 1)
                }
            }
            function b(x) {
                return function () {
                    if (!d && r != x && s.length > 0) {
                        r = x;
                        j.sendEvent(x, {
                            component: "dock",
                            boundingRect: e
                        })
                    }
                }
            }
            function l(x) {
                if (a.utils.isIOS()) {
                    switch (x.newstate) {
                        case a.api.events.state.IDLE:
                            o();
                            break;
                        default:
                            c();
                            break
                    }
                }
            }
            var n = b(a.api.events.JWPLAYER_COMPONENT_SHOW);
            var w = b(a.api.events.JWPLAYER_COMPONENT_HIDE);
            this.resize = h;
            var o = function () {
                _css(m, {
                    display: "block"
                });
                if (d) {
                    d = false;
                    n()
                }
            };
            var c = function () {
                _css(m, {
                    display: "none"
                });
                if (!d) {
                    w();
                    d = true
                }
            };
            this.hide = c;
            this.show = o;
            return this
        }
    })(jwplayer);
    (function (a) {
        a.html5.eventdispatcher = function (d, b) {
            var c = new a.events.eventdispatcher(b);
            a.utils.extend(this, c);
            this.sendEvent = function (e, f) {
                if (!a.utils.exists(f)) {
                    f = {}
                }
                a.utils.extend(f, {
                    id: d,
                    version: a.version,
                    type: e
                });
                c.sendEvent(e, f)
            }
        }
    })(jwplayer);
    (function (a) {
        var b = {
            prefix: "",
            file: "",
            link: "",
            margin: 8,
            out: 0.5,
            over: 1,
            timeout: 5,
            hide: true,
            position: "bottom-left"
        };
        _css = a.utils.css;
        a.html5.logo = function (n, r) {
            var q = n;
            var u;
            var d;
            var t;
            var h = false;
            g();

            function g() {
                o();
                c();
                l()
            }
            function o() {
                if (b.prefix) {
                    var v = n.version.split(/\W/).splice(0, 2).join("/");
                    if (b.prefix.indexOf(v) < 0) {
                        b.prefix += v + "/"
                    }
                }
                if (r.position == a.html5.view.positions.OVER) {
                    r.position = b.position
                }
                d = a.utils.extend({}, b, r)
            }
            function c() {
                t = document.createElement("img");
                t.id = q.id + "_jwplayer_logo";
                t.style.display = "none";
                t.onload = function (v) {
                    _css(t, k());
                    q.jwAddEventListener(a.api.events.JWPLAYER_PLAYER_STATE, j);
                    p()
                };
                if (!d.file) {
                    return
                }
                if (d.file.indexOf("http://") === 0) {
                    t.src = d.file
                } else {
                    t.src = d.prefix + d.file
                }
            }
            if (!d.file) {
                return
            }
            this.resize = function (w, v) { };
            this.getDisplayElement = function () {
                return t
            };

            function l() {
                if (d.link) {
                    t.onmouseover = f;
                    t.onmouseout = p;
                    t.onclick = s
                } else {
                    this.mouseEnabled = false
                }
            }
            function s(v) {
                if (typeof v != "undefined") {
                    v.stopPropagation()
                }
                if (!h) {
                    return
                }
                q.jwPause();
                q.jwSetFullscreen(false);
                if (d.link) {
                    window.open(d.link, "_top")
                }
                return
            }
            function p(v) {
                if (d.link && h) {
                    t.style.opacity = d.out
                }
                return
            }
            function f(v) {
                if (d.hide.toString() == "true" && h) {
                    t.style.opacity = d.over
                }
                return
            }
            function k() {
                var x = {
                    textDecoration: "none",
                    position: "absolute",
                    cursor: "pointer"
                };
                x.display = (d.hide.toString() == "true") ? "none" : "block";
                var w = d.position.toLowerCase().split("-");
                for (var v in w) {
                    x[w[v]] = d.margin
                }
                return x
            }
            function m() {
                if (d.hide.toString() == "true") {
                    t.style.display = "block";
                    t.style.opacity = 0;
                    a.utils.fadeTo(t, d.out, 0.1, parseFloat(t.style.opacity));
                    u = setTimeout(function () {
                        e()
                    }, d.timeout * 1000)
                }
                h = true
            }
            function e() {
                h = false;
                if (d.hide.toString() == "true") {
                    a.utils.fadeTo(t, 0, 0.1, parseFloat(t.style.opacity))
                }
            }
            function j(v) {
                if (v.newstate == a.api.events.state.BUFFERING) {
                    clearTimeout(u);
                    m()
                }
            }
            return this
        }
    })(jwplayer);
    (function (a) {
        var c = {
            ended: a.api.events.state.IDLE,
            playing: a.api.events.state.PLAYING,
            pause: a.api.events.state.PAUSED,
            buffering: a.api.events.state.BUFFERING
        };
        var e = a.utils;
        var b = e.css;
        var d = e.isIOS();
        a.html5.mediavideo = function (h, s) {
            var r = {
                abort: n,
                canplay: k,
                canplaythrough: k,
                durationchange: G,
                emptied: n,
                ended: k,
                error: u,
                loadeddata: G,
                loadedmetadata: G,
                loadstart: k,
                pause: k,
                play: n,
                playing: k,
                progress: v,
                ratechange: n,
                seeked: k,
                seeking: k,
                stalled: k,
                suspend: k,
                timeupdate: D,
                volumechange: n,
                waiting: k,
                canshowcurrentframe: n,
                dataunavailable: n,
                empty: n,
                load: z,
                loadedfirstframe: n
            };
            var j = new a.html5.eventdispatcher();
            e.extend(this, j);
            var y = h,
                l = s,
                m, B, A, x, f, H = false,
                C, p, q;
            o();
            this.load = function (J, K) {
                if (typeof K == "undefined") {
                    K = true
                }
                x = J;
                e.empty(m);
                q = 0;
                if (J.levels && J.levels.length > 0) {
                    if (J.levels.length == 1) {
                        m.src = J.levels[0].file
                    } else {
                        if (m.src) {
                            m.removeAttribute("src")
                        }
                        for (var I = 0; I < J.levels.length; I++) {
                            var L = m.ownerDocument.createElement("source");
                            L.src = J.levels[I].file;
                            m.appendChild(L);
                            q++
                        }
                    }
                } else {
                    m.src = J.file
                }
                if (d) {
                    if (J.image) {
                        m.poster = J.image
                    }
                    m.controls = "controls";
                    m.style.display = "block"
                }
                C = p = A = false;
                y.buffer = 0;
                if (!e.exists(J.start)) {
                    J.start = 0
                }
                y.duration = J.duration;
                j.sendEvent(a.api.events.JWPLAYER_MEDIA_LOADED);
                if ((!d && J.levels.length == 1) || !H) {
                    m.load()
                }
                H = false;
                if (K) {
                    E(a.api.events.state.BUFFERING);
                    j.sendEvent(a.api.events.JWPLAYER_MEDIA_BUFFER, {
                        bufferPercent: 0
                    });
                    this.play()
                }
            };
            this.play = function () {
                if (B != a.api.events.state.PLAYING) {
                    t();
                    if (p) {
                        E(a.api.events.state.PLAYING)
                    } else {
                        E(a.api.events.state.BUFFERING)
                    }
                    m.play()
                }
            };
            this.pause = function () {
                m.pause();
                E(a.api.events.state.PAUSED)
            };
            this.seek = function (I) {
                if (!(y.duration <= 0 || isNaN(y.duration)) && !(y.position <= 0 || isNaN(y.position))) {
                    m.currentTime = I;
                    m.play()
                }
            };
            _stop = this.stop = function (I) {
                if (!e.exists(I)) {
                    I = true
                }
                g();
                if (I) {
                    m.style.display = "none";
                    p = false;
                    var J = navigator.userAgent;
                    if (J.match(/chrome/i)) {
                        m.src = undefined
                    } else {
                        if (J.match(/safari/i)) {
                            m.removeAttribute("src")
                        } else {
                            m.src = ""
                        }
                    }
                    m.removeAttribute("controls");
                    m.removeAttribute("poster");
                    e.empty(m);
                    m.load();
                    H = true;
                    if (m.webkitSupportsFullscreen) {
                        try {
                            m.webkitExitFullscreen()
                        } catch (K) { }
                    }
                }
                E(a.api.events.state.IDLE)
            };
            this.fullscreen = function (I) {
                if (I === true) {
                    this.resize("100%", "100%")
                } else {
                    this.resize(y.config.width, y.config.height)
                }
            };
            this.resize = function (J, I) {
                if (false) {
                    b(l, {
                        width: J,
                        height: I
                    })
                }
                j.sendEvent(a.api.events.JWPLAYER_MEDIA_RESIZE, {
                    fullscreen: y.fullscreen,
                    width: J,
                    hieght: I
                })
            };
            this.volume = function (I) {
                if (!d) {
                    m.volume = I / 100;
                    y.volume = I;
                    j.sendEvent(a.api.events.JWPLAYER_MEDIA_VOLUME, {
                        volume: Math.round(I)
                    })
                }
            };
            this.mute = function (I) {
                if (!d) {
                    m.muted = I;
                    y.mute = I;
                    j.sendEvent(a.api.events.JWPLAYER_MEDIA_MUTE, {
                        mute: I
                    })
                }
            };
            this.getDisplayElement = function () {
                return m
            };
            this.hasChrome = function () {
                return false
            };

            function o() {
                m = document.createElement("video");
                B = a.api.events.state.IDLE;
                for (var I in r) {
                    m.addEventListener(I, function (J) {
                        if (e.exists(J.target.parentNode)) {
                            r[J.type](J)
                        }
                    }, true)
                }
                m.setAttribute("x-webkit-airplay", "allow");
                if (l.parentNode) {
                    l.parentNode.replaceChild(m, l)
                }
                if (!m.id) {
                    m.id = l.id
                }
            }
            function E(I) {
                if (I == a.api.events.state.PAUSED && B == a.api.events.state.IDLE) {
                    return
                }
                if (B != I) {
                    var J = B;
                    y.state = B = I;
                    j.sendEvent(a.api.events.JWPLAYER_PLAYER_STATE, {
                        oldstate: J,
                        newstate: I
                    })
                }
            }
            function n(I) { }
            function v(K) {
                var J;
                if (e.exists(K) && K.lengthComputable && K.total) {
                    J = K.loaded / K.total * 100
                } else {
                    if (e.exists(m.buffered) && (m.buffered.length > 0)) {
                        var I = m.buffered.length - 1;
                        if (I >= 0) {
                            J = m.buffered.end(I) / m.duration * 100
                        }
                    }
                }
                if (p === false && B == a.api.events.state.BUFFERING) {
                    j.sendEvent(a.api.events.JWPLAYER_MEDIA_BUFFER_FULL);
                    p = true
                }
                if (!C) {
                    if (J == 100) {
                        C = true
                    }
                    if (e.exists(J) && (J > y.buffer)) {
                        y.buffer = Math.round(J);
                        j.sendEvent(a.api.events.JWPLAYER_MEDIA_BUFFER, {
                            bufferPercent: Math.round(J)
                        })
                    }
                }
            }
            function D(J) {
                if (e.exists(J) && e.exists(J.target)) {
                    if (!isNaN(J.target.duration) && (isNaN(y.duration) || y.duration < 1)) {
                        if (J.target.duration == Infinity) {
                            y.duration = 0
                        } else {
                            y.duration = Math.round(J.target.duration * 10) / 10
                        }
                    }
                    if (!A && m.readyState > 0) {
                        m.style.display = "block";
                        E(a.api.events.state.PLAYING)
                    }
                    if (B == a.api.events.state.PLAYING) {
                        if (!A && m.readyState > 0) {
                            A = true;
                            try {
                                if (m.currentTime < x.start) {
                                    m.currentTime = x.start
                                }
                            } catch (I) { }
                            m.volume = y.volume / 100;
                            m.muted = y.mute
                        }
                        y.position = y.duration > 0 ? (Math.round(J.target.currentTime * 10) / 10) : 0;
                        j.sendEvent(a.api.events.JWPLAYER_MEDIA_TIME, {
                            position: y.position,
                            duration: y.duration
                        });
                        if (y.position >= y.duration && (y.position > 0 || y.duration > 0)) {
                            w()
                        }
                    }
                }
                v(J)
            }
            function z(I) { }
            function k(I) {
                if (c[I.type]) {
                    if (I.type == "ended") {
                        w()
                    } else {
                        E(c[I.type])
                    }
                }
            }
            function G(I) {
                var J = {
                    height: I.target.videoHeight,
                    width: I.target.videoWidth,
                    duration: Math.round(I.target.duration * 10) / 10
                };
                if ((y.duration === 0 || isNaN(y.duration)) && I.target.duration != Infinity) {
                    y.duration = Math.round(I.target.duration * 10) / 10
                }
                j.sendEvent(a.api.events.JWPLAYER_MEDIA_META, {
                    metadata: J
                })
            }
            function u(K) {
                if (B == a.api.events.state.IDLE) {
                    return
                }
                var J = "There was an error: ";
                if ((K.target.error && K.target.tagName.toLowerCase() == "video") || K.target.parentNode.error && K.target.parentNode.tagName.toLowerCase() == "video") {
                    var I = !e.exists(K.target.error) ? K.target.parentNode.error : K.target.error;
                    switch (I.code) {
                        case I.MEDIA_ERR_ABORTED:
                            J = "You aborted the video playback: ";
                            break;
                        case I.MEDIA_ERR_NETWORK:
                            J = "A network error caused the video download to fail part-way: ";
                            break;
                        case I.MEDIA_ERR_DECODE:
                            J = "The video playback was aborted due to a corruption problem or because the video used features your browser did not support: ";
                            break;
                        case I.MEDIA_ERR_SRC_NOT_SUPPORTED:
                            J = "The video could not be loaded, either because the server or network failed or because the format is not supported: ";
                            break;
                        default:
                            J = "An unknown error occurred: ";
                            break
                    }
                } else {
                    if (K.target.tagName.toLowerCase() == "source") {
                        q--;
                        if (q > 0) {
                            return
                        }
                        J = "The video could not be loaded, either because the server or network failed or because the format is not supported: "
                    } else {
                        e.log("An unknown error occurred.  Continuing...");
                        return
                    }
                }
                _stop(false);
                J += F();
                _error = true;
                j.sendEvent(a.api.events.JWPLAYER_ERROR, {
                    error: J
                });
                return
            }
            function F() {
                var K = "";
                for (var J in x.levels) {
                    var I = x.levels[J];
                    var L = l.ownerDocument.createElement("source");
                    K += a.utils.getAbsolutePath(I.file);
                    if (J < (x.levels.length - 1)) {
                        K += ", "
                    }
                }
                return K
            }
            function t() {
                if (!e.exists(f)) {
                    f = setInterval(function () {
                        v()
                    }, 100)
                }
            }
            function g() {
                clearInterval(f);
                f = null
            }
            function w() {
                if (B != a.api.events.state.IDLE) {
                    _stop(false);
                    j.sendEvent(a.api.events.JWPLAYER_MEDIA_COMPLETE)
                }
            }
        }
    })(jwplayer);
    (function (a) {
        var c = {
            ended: a.api.events.state.IDLE,
            playing: a.api.events.state.PLAYING,
            pause: a.api.events.state.PAUSED,
            buffering: a.api.events.state.BUFFERING
        };
        var b = a.utils.css;
        a.html5.mediayoutube = function (j, e) {
            var f = new a.html5.eventdispatcher();
            a.utils.extend(this, f);
            var l = j;
            var h = document.getElementById(e.id);
            var g = a.api.events.state.IDLE;
            var n, m;

            function k(p) {
                if (g != p) {
                    var q = g;
                    l.state = p;
                    g = p;
                    f.sendEvent(a.api.events.JWPLAYER_PLAYER_STATE, {
                        oldstate: q,
                        newstate: p
                    })
                }
            }
            this.getDisplayElement = function () {
                return h
            };
            this.play = function () {
                if (g == a.api.events.state.IDLE) {
                    f.sendEvent(a.api.events.JWPLAYER_MEDIA_BUFFER, {
                        bufferPercent: 100
                    });
                    f.sendEvent(a.api.events.JWPLAYER_MEDIA_BUFFER_FULL);
                    k(a.api.events.state.PLAYING)
                } else {
                    if (g == a.api.events.state.PAUSED) {
                        k(a.api.events.state.PLAYING)
                    }
                }
            };
            this.pause = function () {
                k(a.api.events.state.PAUSED)
            };
            this.seek = function (p) { };
            this.stop = function (p) {
                if (!_utils.exists(p)) {
                    p = true
                }
                l.position = 0;
                k(a.api.events.state.IDLE);
                if (p) {
                    b(h, {
                        display: "none"
                    })
                }
            };
            this.volume = function (p) {
                l.volume = p;
                f.sendEvent(a.api.events.JWPLAYER_MEDIA_VOLUME, {
                    volume: Math.round(p)
                })
            };
            this.mute = function (p) {
                h.muted = p;
                l.mute = p;
                f.sendEvent(a.api.events.JWPLAYER_MEDIA_MUTE, {
                    mute: p
                })
            };
            this.resize = function (q, p) {
                if (q * p > 0 && n) {
                    n.width = m.width = q;
                    n.height = m.height = p
                }
                f.sendEvent(a.api.events.JWPLAYER_MEDIA_RESIZE, {
                    fullscreen: l.fullscreen,
                    width: q,
                    height: p
                })
            };
            this.fullscreen = function (p) {
                if (p === true) {
                    this.resize("100%", "100%")
                } else {
                    this.resize(l.config.width, l.config.height)
                }
            };
            this.load = function (p) {
                o(p);
                b(n, {
                    display: "block"
                });
                k(a.api.events.state.BUFFERING);
                f.sendEvent(a.api.events.JWPLAYER_MEDIA_BUFFER, {
                    bufferPercent: 0
                });
                f.sendEvent(a.api.events.JWPLAYER_MEDIA_LOADED);
                this.play()
            };
            this.hasChrome = function () {
                return (g != a.api.events.state.IDLE)
            };

            function o(v) {
                var s = v.levels[0].file;
                s = ["http://www.youtube.com/v/", d(s), "&amp;hl=en_US&amp;fs=1&autoplay=1"].join("");
                n = document.createElement("object");
                n.id = h.id;
                n.style.position = "absolute";
                var u = {
                    movie: s,
                    allowfullscreen: "true",
                    allowscriptaccess: "always"
                };
                for (var p in u) {
                    var t = document.createElement("param");
                    t.name = p;
                    t.value = u[p];
                    n.appendChild(t)
                }
                m = document.createElement("embed");
                n.appendChild(m);
                var q = {
                    src: s,
                    type: "application/x-shockwave-flash",
                    allowfullscreen: "true",
                    allowscriptaccess: "always",
                    width: n.width,
                    height: n.height
                };
                for (var r in q) {
                    m.setAttribute(r, q[r])
                }
                n.appendChild(m);
                n.style.zIndex = 2147483000;
                if (h != n && h.parentNode) {
                    h.parentNode.replaceChild(n, h)
                }
                h = n
            }
            function d(q) {
                var p = q.split(/\?|\#\!/);
                var s = "";
                for (var r = 0; r < p.length; r++) {
                    if (p[r].substr(0, 2) == "v=") {
                        s = p[r].substr(2)
                    }
                }
                if (s == "") {
                    if (q.indexOf("/v/") >= 0) {
                        s = q.substr(q.indexOf("/v/") + 3)
                    } else {
                        if (q.indexOf("youtu.be") >= 0) {
                            s = q.substr(q.indexOf("youtu.be/") + 9)
                        } else {
                            s = q
                        }
                    }
                }
                if (s.indexOf("?") > -1) {
                    s = s.substr(0, s.indexOf("?"))
                }
                if (s.indexOf("&") > -1) {
                    s = s.substr(0, s.indexOf("&"))
                }
                return s
            }
            this.embed = m;
            return this
        }
    })(jwplayer);
    (function (jwplayer) {
        var _configurableStateVariables = ["width", "height", "start", "duration", "volume", "mute", "fullscreen", "item", "plugins", "stretching"];
        jwplayer.html5.model = function (api, container, options) {
            var _api = api;
            var _container = container;
            var _model = {
                id: _container.id,
                playlist: [],
                state: jwplayer.api.events.state.IDLE,
                position: 0,
                buffer: 0,
                config: {
                    width: 480,
                    height: 320,
                    item: -1,
                    skin: undefined,
                    file: undefined,
                    image: undefined,
                    start: 0,
                    duration: 0,
                    bufferlength: 5,
                    volume: 90,
                    mute: false,
                    fullscreen: false,
                    repeat: "",
                    stretching: jwplayer.utils.stretching.UNIFORM,
                    autostart: false,
                    debug: undefined,
                    screencolor: undefined
                }
            };
            var _media;
            var _eventDispatcher = new jwplayer.html5.eventdispatcher();
            var _components = ["display", "logo", "controlbar", "playlist", "dock"];
            jwplayer.utils.extend(_model, _eventDispatcher);
            for (var option in options) {
                if (typeof options[option] == "string") {
                    var type = /color$/.test(option) ? "color" : null;
                    options[option] = jwplayer.utils.typechecker(options[option], type)
                }
                var config = _model.config;
                var path = option.split(".");
                for (var edge in path) {
                    if (edge == path.length - 1) {
                        config[path[edge]] = options[option]
                    } else {
                        if (!jwplayer.utils.exists(config[path[edge]])) {
                            config[path[edge]] = {}
                        }
                        config = config[path[edge]]
                    }
                }
            }
            for (var index in _configurableStateVariables) {
                var configurableStateVariable = _configurableStateVariables[index];
                _model[configurableStateVariable] = _model.config[configurableStateVariable]
            }
            var pluginorder = _components.concat([]);
            if (jwplayer.utils.exists(_model.plugins)) {
                if (typeof _model.plugins == "string") {
                    var userplugins = _model.plugins.split(",");
                    for (var userplugin in userplugins) {
                        if (typeof userplugins[userplugin] == "string") {
                            pluginorder.push(userplugins[userplugin].replace(/^\s+|\s+$/g, ""))
                        }
                    }
                }
            }
            if (jwplayer.utils.isIOS()) {
                pluginorder = ["display", "logo", "dock", "playlist"];
                if (!jwplayer.utils.exists(_model.config.repeat)) {
                    _model.config.repeat = "list"
                }
            } else {
                if (_model.config.chromeless) {
                    pluginorder = ["logo", "dock", "playlist"];
                    if (!jwplayer.utils.exists(_model.config.repeat)) {
                        _model.config.repeat = "list"
                    }
                }
            }
            _model.plugins = {
                order: pluginorder,
                config: {},
                object: {}
            };
            if (typeof _model.config.components != "undefined") {
                for (var component in _model.config.components) {
                    _model.plugins.config[component] = _model.config.components[component]
                }
            }
            for (var pluginIndex in _model.plugins.order) {
                var pluginName = _model.plugins.order[pluginIndex];
                var pluginConfig = !jwplayer.utils.exists(_model.plugins.config[pluginName]) ? {} : _model.plugins.config[pluginName];
                _model.plugins.config[pluginName] = !jwplayer.utils.exists(_model.plugins.config[pluginName]) ? pluginConfig : jwplayer.utils.extend(_model.plugins.config[pluginName], pluginConfig);
                if (!jwplayer.utils.exists(_model.plugins.config[pluginName].position)) {
                    if (pluginName == "playlist") {
                        _model.plugins.config[pluginName].position = jwplayer.html5.view.positions.NONE
                    } else {
                        _model.plugins.config[pluginName].position = jwplayer.html5.view.positions.OVER
                    }
                } else {
                    _model.plugins.config[pluginName].position = _model.plugins.config[pluginName].position.toString().toUpperCase()
                }
            }
            if (typeof _model.plugins.config.dock != "undefined") {
                if (typeof _model.plugins.config.dock != "object") {
                    var position = _model.plugins.config.dock.toString().toUpperCase();
                    _model.plugins.config.dock = {
                        position: position
                    }
                }
                if (typeof _model.plugins.config.dock.position != "undefined") {
                    _model.plugins.config.dock.align = _model.plugins.config.dock.position;
                    _model.plugins.config.dock.position = jwplayer.html5.view.positions.OVER
                }
            }
            function _loadExternal(playlistfile) {
                var loader = new jwplayer.html5.playlistloader();
                loader.addEventListener(jwplayer.api.events.JWPLAYER_PLAYLIST_LOADED, function (evt) {
                    _model.playlist = new jwplayer.html5.playlist(evt);
                    _loadComplete(true)
                });
                loader.addEventListener(jwplayer.api.events.JWPLAYER_ERROR, function (evt) {
                    _model.playlist = new jwplayer.html5.playlist({
                        playlist: []
                    });
                    _loadComplete(false)
                });
                loader.load(playlistfile)
            }
            function _loadComplete() {
                if (_model.config.shuffle) {
                    _model.item = _getShuffleItem()
                } else {
                    if (_model.config.item >= _model.playlist.length) {
                        _model.config.item = _model.playlist.length - 1
                    } else {
                        if (_model.config.item < 0) {
                            _model.config.item = 0
                        }
                    }
                    _model.item = _model.config.item
                }
                _eventDispatcher.sendEvent(jwplayer.api.events.JWPLAYER_PLAYLIST_LOADED, {
                    playlist: _model.playlist
                });
                _eventDispatcher.sendEvent(jwplayer.api.events.JWPLAYER_PLAYLIST_ITEM, {
                    index: _model.item
                })
            }
            _model.loadPlaylist = function (arg) {
                var input;
                if (typeof arg == "string") {
                    if (arg.indexOf("[") == 0 || arg.indexOf("{") == "0") {
                        try {
                            input = eval(arg)
                        } catch (err) {
                            input = arg
                        }
                    } else {
                        input = arg
                    }
                } else {
                    input = arg
                }
                var config;
                switch (jwplayer.utils.typeOf(input)) {
                    case "object":
                        config = input;
                        break;
                    case "array":
                        config = {
                            playlist: input
                        };
                        break;
                    default:
                        _loadExternal(input);
                        return;
                        break
                }
                _model.playlist = new jwplayer.html5.playlist(config);
                if (jwplayer.utils.extension(_model.playlist[0].file) == "xml") {
                    _loadExternal(_model.playlist[0].file)
                } else {
                    _loadComplete()
                }
            };

            function _getShuffleItem() {
                var result = null;
                if (_model.playlist.length > 1) {
                    while (!jwplayer.utils.exists(result)) {
                        result = Math.floor(Math.random() * _model.playlist.length);
                        if (result == _model.item) {
                            result = null
                        }
                    }
                } else {
                    result = 0
                }
                return result
            }
            function forward(evt) {
                if (evt.type == jwplayer.api.events.JWPLAYER_MEDIA_LOADED) {
                    _container = _media.getDisplayElement()
                }
                _eventDispatcher.sendEvent(evt.type, evt)
            }
            var _mediaProviders = {};
            _model.setActiveMediaProvider = function (playlistItem) {
                if (playlistItem.provider == "audio") {
                    playlistItem.provider = "sound"
                }
                var provider = playlistItem.provider;
                var current = _media ? _media.getDisplayElement() : null;
                if (provider == "sound" || provider == "http" || provider == "") {
                    provider = "video"
                }
                if (!jwplayer.utils.exists(_mediaProviders[provider])) {
                    switch (provider) {
                        case "video":
                            _media = new jwplayer.html5.mediavideo(_model, current ? current : _container);
                            break;
                        case "youtube":
                            _media = new jwplayer.html5.mediayoutube(_model, current ? current : _container);
                            break
                    }
                    if (!jwplayer.utils.exists(_media)) {
                        return false
                    }
                    _media.addGlobalListener(forward);
                    _mediaProviders[provider] = _media
                } else {
                    if (_media != _mediaProviders[provider]) {
                        if (_media) {
                            _media.stop()
                        }
                        _media = _mediaProviders[provider]
                    }
                }
                return true
            };
            _model.getMedia = function () {
                return _media
            };
            _model.seek = function (pos) {
                _eventDispatcher.sendEvent(jwplayer.api.events.JWPLAYER_MEDIA_SEEK, {
                    position: _model.position,
                    offset: pos
                });
                return _media.seek(pos)
            };
            _model.setupPlugins = function () {
                if (!jwplayer.utils.exists(_model.plugins) || !jwplayer.utils.exists(_model.plugins.order) || _model.plugins.order.length == 0) {
                    jwplayer.utils.log("No plugins to set up");
                    return _model
                }
                for (var i = 0; i < _model.plugins.order.length; i++) {
                    try {
                        var pluginName = _model.plugins.order[i];
                        if (jwplayer.utils.exists(jwplayer.html5[pluginName])) {
                            if (pluginName == "playlist") {
                                _model.plugins.object[pluginName] = new jwplayer.html5.playlistcomponent(_api, _model.plugins.config[pluginName])
                            } else {
                                _model.plugins.object[pluginName] = new jwplayer.html5[pluginName](_api, _model.plugins.config[pluginName])
                            }
                        } else {
                            _model.plugins.order.splice(plugin, plugin + 1)
                        }
                        if (typeof _model.plugins.object[pluginName].addGlobalListener == "function") {
                            _model.plugins.object[pluginName].addGlobalListener(forward)
                        }
                    } catch (err) {
                        jwplayer.utils.log("Could not setup " + pluginName)
                    }
                }
            };
            return _model
        }
    })(jwplayer);
    (function (a) {
        a.html5.playlist = function (b) {
            var d = [];
            if (b.playlist && b.playlist instanceof Array && b.playlist.length > 0) {
                for (var c in b.playlist) {
                    if (!isNaN(parseInt(c))) {
                        d.push(new a.html5.playlistitem(b.playlist[c]))
                    }
                }
            } else {
                d.push(new a.html5.playlistitem(b))
            }
            return d
        }
    })(jwplayer);
    (function (a) {
        var c = {
            size: 180,
            position: a.html5.view.positions.NONE,
            itemheight: 60,
            thumbs: true,
            fontcolor: "#000000",
            overcolor: "",
            activecolor: "",
            backgroundcolor: "#f8f8f8",
            font: "_sans",
            fontsize: "",
            fontstyle: "",
            fontweight: ""
        };
        var b = {
            _sans: "Arial, Helvetica, sans-serif",
            _serif: "Times, Times New Roman, serif",
            _typewriter: "Courier New, Courier, monospace"
        };
        _utils = a.utils;
        _css = _utils.css;
        _hide = function (d) {
            _css(d, {
                display: "none"
            })
        };
        _show = function (d) {
            _css(d, {
                display: "block"
            })
        };
        a.html5.playlistcomponent = function (r, B) {
            var w = r;
            var e = a.utils.extend({}, c, w.skin.getComponentSettings("playlist"), B);
            if (e.position == a.html5.view.positions.NONE || typeof a.html5.view.positions[e.position] == "undefined") {
                return
            }
            var x;
            var l;
            var C;
            var d;
            var g;
            var f;
            var k = -1;
            var h = {
                background: undefined,
                item: undefined,
                itemOver: undefined,
                itemImage: undefined,
                itemActive: undefined
            };
            this.getDisplayElement = function () {
                return x
            };
            this.resize = function (F, D) {
                l = F;
                C = D;
                if (w.jwGetFullscreen()) {
                    _hide(x)
                } else {
                    var E = {
                        display: "block",
                        width: l,
                        height: C
                    };
                    _css(x, E)
                }
            };
            this.show = function () {
                _show(x)
            };
            this.hide = function () {
                _hide(x)
            };

            function j() {
                x = document.createElement("div");
                x.id = w.id + "_jwplayer_playlistcomponent";
                switch (e.position) {
                    case a.html5.view.positions.RIGHT:
                    case a.html5.view.positions.LEFT:
                        x.style.width = e.size + "px";
                        break;
                    case a.html5.view.positions.TOP:
                    case a.html5.view.positions.BOTTOM:
                        x.style.height = e.size + "px";
                        break
                }
                A();
                if (h.item) {
                    e.itemheight = h.item.height
                }
                x.style.backgroundColor = "#C6C6C6";
                w.jwAddEventListener(a.api.events.JWPLAYER_PLAYLIST_LOADED, s);
                w.jwAddEventListener(a.api.events.JWPLAYER_PLAYLIST_ITEM, u);
                w.jwAddEventListener(a.api.events.JWPLAYER_PLAYER_STATE, m)
            }
            function p() {
                var D = document.createElement("ul");
                _css(D, {
                    width: x.style.width,
                    minWidth: x.style.width,
                    height: x.style.height,
                    backgroundColor: e.backgroundcolor,
                    backgroundImage: h.background ? "url(" + h.background.src + ")" : "",
                    color: e.fontcolor,
                    listStyle: "none",
                    margin: 0,
                    padding: 0,
                    fontFamily: b[e.font] ? b[e.font] : b._sans,
                    fontSize: (e.fontsize ? e.fontsize : 11) + "px",
                    fontStyle: e.fontstyle,
                    fontWeight: e.fontweight,
                    overflowY: "auto"
                });
                return D
            }
            function y(D) {
                return function () {
                    var E = f.getElementsByClassName("item")[D];
                    var F = e.fontcolor;
                    var G = h.item ? "url(" + h.item.src + ")" : "";
                    if (D == w.jwGetPlaylistIndex()) {
                        if (e.activecolor !== "") {
                            F = e.activecolor
                        }
                        if (h.itemActive) {
                            G = "url(" + h.itemActive.src + ")"
                        }
                    }
                    _css(E, {
                        color: e.overcolor !== "" ? e.overcolor : F,
                        backgroundImage: h.itemOver ? "url(" + h.itemOver.src + ")" : G
                    })
                }
            }
            function o(D) {
                return function () {
                    var E = f.getElementsByClassName("item")[D];
                    var F = e.fontcolor;
                    var G = h.item ? "url(" + h.item.src + ")" : "";
                    if (D == w.jwGetPlaylistIndex()) {
                        if (e.activecolor !== "") {
                            F = e.activecolor
                        }
                        if (h.itemActive) {
                            G = "url(" + h.itemActive.src + ")"
                        }
                    }
                    _css(E, {
                        color: F,
                        backgroundImage: G
                    })
                }
            }
            function q(I) {
                var P = d[I];
                var O = document.createElement("li");
                O.className = "item";
                _css(O, {
                    height: e.itemheight,
                    display: "block",
                    cursor: "pointer",
                    backgroundImage: h.item ? "url(" + h.item.src + ")" : "",
                    backgroundSize: "100% " + e.itemheight + "px"
                });
                O.onmouseover = y(I);
                O.onmouseout = o(I);
                var J = document.createElement("div");
                var F = new Image();
                var K = 0;
                var L = 0;
                var M = 0;
                if (v() && (P.image || P["playlist.image"] || h.itemImage)) {
                    F.className = "image";
                    if (h.itemImage) {
                        K = (e.itemheight - h.itemImage.height) / 2;
                        L = h.itemImage.width;
                        M = h.itemImage.height
                    } else {
                        L = e.itemheight * 4 / 3;
                        M = e.itemheight
                    }
                    _css(J, {
                        height: M,
                        width: L,
                        "float": "left",
                        styleFloat: "left",
                        cssFloat: "left",
                        margin: "0 5px 0 0",
                        background: "black",
                        overflow: "hidden",
                        margin: K + "px",
                        position: "relative"
                    });
                    _css(F, {
                        position: "relative"
                    });
                    J.appendChild(F);
                    F.onload = function () {
                        a.utils.stretch(a.utils.stretching.FILL, F, L, M, this.naturalWidth, this.naturalHeight)
                    };
                    if (P["playlist.image"]) {
                        F.src = P["playlist.image"]
                    } else {
                        if (P.image) {
                            F.src = P.image
                        } else {
                            if (h.itemImage) {
                                F.src = h.itemImage.src
                            }
                        }
                    }
                    O.appendChild(J)
                }
                var E = l - L - K * 2;
                if (C < e.itemheight * d.length) {
                    E -= 15
                }
                var D = document.createElement("div");
                _css(D, {
                    position: "relative",
                    height: "100%",
                    overflow: "hidden"
                });
                var G = document.createElement("span");
                if (P.duration > 0) {
                    G.className = "duration";
                    _css(G, {
                        fontSize: (e.fontsize ? e.fontsize : 11) + "px",
                        fontWeight: (e.fontweight ? e.fontweight : "bold"),
                        width: "40px",
                        height: e.fontsize ? e.fontsize + 10 : 20,
                        lineHeight: 24,
                        "float": "right",
                        styleFloat: "right",
                        cssFloat: "right"
                    });
                    G.innerHTML = _utils.timeFormat(P.duration);
                    D.appendChild(G)
                }
                var N = document.createElement("span");
                N.className = "title";
                _css(N, {
                    padding: "5px 5px 0 " + (K ? 0 : "5px"),
                    height: e.fontsize ? e.fontsize + 10 : 20,
                    lineHeight: e.fontsize ? e.fontsize + 10 : 20,
                    overflow: "hidden",
                    "float": "left",
                    styleFloat: "left",
                    cssFloat: "left",
                    width: ((P.duration > 0) ? E - 50 : E) - 10 + "px",
                    fontSize: (e.fontsize ? e.fontsize : 13) + "px",
                    fontWeight: (e.fontweight ? e.fontweight : "bold")
                });
                N.innerHTML = P ? P.title : "";
                D.appendChild(N);
                if (P.description) {
                    var H = document.createElement("span");
                    H.className = "description";
                    _css(H, {
                        display: "block",
                        "float": "left",
                        styleFloat: "left",
                        cssFloat: "left",
                        margin: 0,
                        paddingLeft: N.style.paddingLeft,
                        paddingRight: N.style.paddingRight,
                        lineHeight: (e.fontsize ? e.fontsize + 4 : 16) + "px",
                        overflow: "hidden",
                        position: "relative"
                    });
                    H.innerHTML = P.description;
                    D.appendChild(H)
                }
                O.appendChild(D);
                return O
            }
            function s(E) {
                x.innerHTML = "";
                d = w.jwGetPlaylist();
                if (!d) {
                    return
                }
                items = [];
                f = p();
                for (var F = 0; F < d.length; F++) {
                    var D = q(F);
                    D.onclick = z(F);
                    f.appendChild(D);
                    items.push(D)
                }
                k = w.jwGetPlaylistIndex();
                o(k)();
                x.appendChild(f);
                if (_utils.isIOS() && window.iScroll) {
                    f.style.height = e.itemheight * d.length + "px";
                    var G = new iScroll(x.id)
                }
            }
            function z(D) {
                return function () {
                    w.jwPlaylistItem(D);
                    w.jwPlay(true)
                }
            }
            function n() {
                f.scrollTop = w.jwGetPlaylistIndex() * e.itemheight
            }
            function v() {
                return e.thumbs.toString().toLowerCase() == "true"
            }
            function u(D) {
                if (k >= 0) {
                    o(k)();
                    k = D.index
                }
                o(D.index)();
                n()
            }
            function m() {
                if (e.position == a.html5.view.positions.OVER) {
                    switch (w.jwGetState()) {
                        case a.api.events.state.IDLE:
                            _show(x);
                            break;
                        default:
                            _hide(x);
                            break
                    }
                }
            }
            function A() {
                for (var D in h) {
                    h[D] = t(D)
                }
            }
            function t(D) {
                return w.skin.getSkinElement("playlist", D)
            }
            j();
            return this
        }
    })(jwplayer);
    (function (b) {
        b.html5.playlistitem = function (d) {
            var e = {
                author: "",
                date: "",
                description: "",
                image: "",
                link: "",
                mediaid: "",
                tags: "",
                title: "",
                provider: "",
                file: "",
                streamer: "",
                duration: -1,
                start: 0,
                currentLevel: -1,
                levels: []
            };
            var c = b.utils.extend({}, e, d);
            if (c.type) {
                c.provider = c.type;
                delete c.type
            }
            if (c.levels.length === 0) {
                c.levels[0] = new b.html5.playlistitemlevel(c)
            }
            if (!c.provider) {
                c.provider = a(c.levels[0])
            } else {
                c.provider = c.provider.toLowerCase()
            }
            return c
        };

        function a(e) {
            if (b.utils.isYouTube(e.file)) {
                return "youtube"
            } else {
                var f = b.utils.extension(e.file);
                var c;
                if (f && b.utils.extensionmap[f]) {
                    if (f == "m3u8") {
                        return "video"
                    }
                    c = b.utils.extensionmap[f].html5
                } else {
                    if (e.type) {
                        c = e.type
                    }
                }
                if (c) {
                    var d = c.split("/")[0];
                    if (d == "audio") {
                        return "sound"
                    } else {
                        if (d == "video") {
                            return d
                        }
                    }
                }
            }
            return ""
        }
    })(jwplayer);
    (function (a) {
        a.html5.playlistitemlevel = function (b) {
            var d = {
                file: "",
                streamer: "",
                bitrate: 0,
                width: 0
            };
            for (var c in d) {
                if (a.utils.exists(b[c])) {
                    d[c] = b[c]
                }
            }
            return d
        }
    })(jwplayer);
    (function (a) {
        a.html5.playlistloader = function () {
            var c = new a.html5.eventdispatcher();
            a.utils.extend(this, c);
            this.load = function (e) {
                a.utils.ajax(e, d, b)
            };

            function d(g) {
                var f = [];
                try {
                    var f = a.utils.parsers.rssparser.parse(g.responseXML.firstChild);
                    c.sendEvent(a.api.events.JWPLAYER_PLAYLIST_LOADED, {
                        playlist: new a.html5.playlist({
                            playlist: f
                        })
                    })
                } catch (h) {
                    b("Could not parse the playlist")
                }
            }
            function b(e) {
                c.sendEvent(a.api.events.JWPLAYER_ERROR, {
                    error: e ? e : "could not load playlist for whatever reason.  too bad"
                })
            }
        }
    })(jwplayer);
    (function (a) {
        a.html5.skin = function () {
            var b = {};
            var c = false;
            this.load = function (d, e) {
                new a.html5.skinloader(d, function (f) {
                    c = true;
                    b = f;
                    e()
                }, function () {
                    new a.html5.skinloader("", function (f) {
                        c = true;
                        b = f;
                        e()
                    })
                })
            };
            this.getSkinElement = function (d, e) {
                if (c) {
                    try {
                        return b[d].elements[e]
                    } catch (f) {
                        a.utils.log("No such skin component / element: ", [d, e])
                    }
                }
                return null
            };
            this.getComponentSettings = function (d) {
                if (c) {
                    return b[d].settings
                }
                return null
            };
            this.getComponentLayout = function (d) {
                if (c) {
                    return b[d].layout
                }
                return null
            }
        }
    })(jwplayer);
    (function (a) {
        a.html5.skinloader = function (f, p, k) {
            var o = {};
            var c = p;
            var l = k;
            var e = true;
            var j;
            var n = f;
            var s = false;

            function m() {
                if (typeof n != "string" || n === "") {
                    d(a.html5.defaultSkin().xml)
                } else {
                    a.utils.ajax(a.utils.getAbsolutePath(n), function (t) {
                        try {
                            if (a.utils.exists(t.responseXML)) {
                                d(t.responseXML);
                                return
                            }
                        } catch (u) {
                            h()
                        }
                        d(a.html5.defaultSkin().xml)
                    }, function (t) {
                        d(a.html5.defaultSkin().xml)
                    })
                }
            }
            function d(y) {
                var E = y.getElementsByTagName("component");
                if (E.length === 0) {
                    return
                }
                for (var H = 0; H < E.length; H++) {
                    var C = E[H].getAttribute("name");
                    var B = {
                        settings: {},
                        elements: {},
                        layout: {}
                    };
                    o[C] = B;
                    var G = E[H].getElementsByTagName("elements")[0].getElementsByTagName("element");
                    for (var F = 0; F < G.length; F++) {
                        b(G[F], C)
                    }
                    var z = E[H].getElementsByTagName("settings")[0];
                    if (z && z.childNodes.length > 0) {
                        var K = z.getElementsByTagName("setting");
                        for (var P = 0; P < K.length; P++) {
                            var Q = K[P].getAttribute("name");
                            var I = K[P].getAttribute("value");
                            var x = /color$/.test(Q) ? "color" : null;
                            o[C].settings[Q] = a.utils.typechecker(I, x)
                        }
                    }
                    var L = E[H].getElementsByTagName("layout")[0];
                    if (L && L.childNodes.length > 0) {
                        var M = L.getElementsByTagName("group");
                        for (var w = 0; w < M.length; w++) {
                            var A = M[w];
                            o[C].layout[A.getAttribute("position")] = {
                                elements: []
                            };
                            for (var O = 0; O < A.attributes.length; O++) {
                                var D = A.attributes[O];
                                o[C].layout[A.getAttribute("position")][D.name] = D.value
                            }
                            var N = A.getElementsByTagName("*");
                            for (var v = 0; v < N.length; v++) {
                                var t = N[v];
                                o[C].layout[A.getAttribute("position")].elements.push({
                                    type: t.tagName
                                });
                                for (var u = 0; u < t.attributes.length; u++) {
                                    var J = t.attributes[u];
                                    o[C].layout[A.getAttribute("position")].elements[v][J.name] = J.value
                                }
                                if (!a.utils.exists(o[C].layout[A.getAttribute("position")].elements[v].name)) {
                                    o[C].layout[A.getAttribute("position")].elements[v].name = t.tagName
                                }
                            }
                        }
                    }
                    e = false;
                    r()
                }
            }
            function r() {
                clearInterval(j);
                if (!s) {
                    j = setInterval(function () {
                        q()
                    }, 100)
                }
            }
            function b(y, x) {
                var w = new Image();
                var t = y.getAttribute("name");
                var v = y.getAttribute("src");
                var A;
                if (v.indexOf("data:image/png;base64,") === 0) {
                    A = v
                } else {
                    var u = a.utils.getAbsolutePath(n);
                    var z = u.substr(0, u.lastIndexOf("/"));
                    A = [z, x, v].join("/")
                }
                o[x].elements[t] = {
                    height: 0,
                    width: 0,
                    src: "",
                    ready: false,
                    image: w
                };
                w.onload = function (B) {
                    g(w, t, x)
                };
                w.onerror = function (B) {
                    s = true;
                    r();
                    l()
                };
                w.src = A
            }
            function h() {
                for (var u in o) {
                    var w = o[u];
                    for (var t in w.elements) {
                        var x = w.elements[t];
                        var v = x.image;
                        v.onload = null;
                        v.onerror = null;
                        delete x.image;
                        delete w.elements[t]
                    }
                    delete o[u]
                }
            }
            function q() {
                for (var t in o) {
                    if (t != "properties") {
                        for (var u in o[t].elements) {
                            if (!o[t].elements[u].ready) {
                                return
                            }
                        }
                    }
                }
                if (e === false) {
                    clearInterval(j);
                    c(o)
                }
            }
            function g(t, v, u) {
                if (o[u] && o[u].elements[v]) {
                    o[u].elements[v].height = t.height;
                    o[u].elements[v].width = t.width;
                    o[u].elements[v].src = t.src;
                    o[u].elements[v].ready = true;
                    r()
                } else {
                    a.utils.log("Loaded an image for a missing element: " + u + "." + v)
                }
            }
            m()
        }
    })(jwplayer);
    (function (a) {
        a.html5.api = function (c, n) {
            var m = {};
            var f = document.createElement("div");
            c.parentNode.replaceChild(f, c);
            f.id = c.id;
            m.version = a.version;
            m.id = f.id;
            var l = new a.html5.model(m, f, n);
            var j = new a.html5.view(m, f, l);
            var k = new a.html5.controller(m, f, l, j);
            m.skin = new a.html5.skin();
            m.jwPlay = function (o) {
                if (typeof o == "undefined") {
                    e()
                } else {
                    if (o.toString().toLowerCase() == "true") {
                        k.play()
                    } else {
                        k.pause()
                    }
                }
            };
            m.jwPause = function (o) {
                if (typeof o == "undefined") {
                    e()
                } else {
                    if (o.toString().toLowerCase() == "true") {
                        k.pause()
                    } else {
                        k.play()
                    }
                }
            };

            function e() {
                if (l.state == a.api.events.state.PLAYING || l.state == a.api.events.state.BUFFERING) {
                    k.pause()
                } else {
                    k.play()
                }
            }
            m.jwStop = k.stop;
            m.jwSeek = k.seek;
            m.jwPlaylistItem = k.item;
            m.jwPlaylistNext = k.next;
            m.jwPlaylistPrev = k.prev;
            m.jwResize = k.resize;
            m.jwLoad = k.load;

            function h(o) {
                return function () {
                    return l[o]
                }
            }
            function d(o, q, p) {
                return function () {
                    var r = l.plugins.object[o];
                    if (r && r[q] && typeof r[q] == "function") {
                        r[q].apply(r, p)
                    }
                }
            }
            m.jwGetItem = h("item");
            m.jwGetPosition = h("position");
            m.jwGetDuration = h("duration");
            m.jwGetBuffer = h("buffer");
            m.jwGetWidth = h("width");
            m.jwGetHeight = h("height");
            m.jwGetFullscreen = h("fullscreen");
            m.jwSetFullscreen = k.setFullscreen;
            m.jwGetVolume = h("volume");
            m.jwSetVolume = k.setVolume;
            m.jwGetMute = h("mute");
            m.jwSetMute = k.setMute;
            m.jwGetStretching = h("stretching");
            m.jwGetState = h("state");
            m.jwGetVersion = function () {
                return m.version
            };
            m.jwGetPlaylist = function () {
                return l.playlist
            };
            m.jwGetPlaylistIndex = m.jwGetItem;
            m.jwAddEventListener = k.addEventListener;
            m.jwRemoveEventListener = k.removeEventListener;
            m.jwSendEvent = k.sendEvent;
            m.jwDockSetButton = function (r, o, p, q) {
                if (l.plugins.object.dock && l.plugins.object.dock.setButton) {
                    l.plugins.object.dock.setButton(r, o, p, q)
                }
            };
            m.jwControlbarShow = d("controlbar", "show");
            m.jwControlbarHide = d("controlbar", "hide");
            m.jwDockShow = d("dock", "show");
            m.jwDockHide = d("dock", "hide");
            m.jwDisplayShow = d("display", "show");
            m.jwDisplayHide = d("display", "hide");
            m.jwGetLevel = function () { };
            m.jwGetBandwidth = function () { };
            m.jwGetLockState = function () { };
            m.jwLock = function () { };
            m.jwUnlock = function () { };

            function b() {
                if (l.config.playlistfile) {
                    l.addEventListener(a.api.events.JWPLAYER_PLAYLIST_LOADED, g);
                    l.loadPlaylist(l.config.playlistfile)
                } else {
                    if (typeof l.config.playlist == "string") {
                        l.addEventListener(a.api.events.JWPLAYER_PLAYLIST_LOADED, g);
                        l.loadPlaylist(l.config.playlist)
                    } else {
                        l.loadPlaylist(l.config);
                        setTimeout(g, 25)
                    }
                }
            }
            function g(o) {
                l.removeEventListener(a.api.events.JWPLAYER_PLAYLIST_LOADED, g);
                l.setupPlugins();
                j.setup();
                var o = {
                    id: m.id,
                    version: m.version
                };
                k.playerReady(o)
            }
            if (l.config.chromeless && !a.utils.isIOS()) {
                b()
            } else {
                m.skin.load(l.config.skin, b)
            }
            return m
        }
    })(jwplayer)
};